1. 17 Dec, 2022 9 commits
    • Linus Torvalds's avatar
      Merge tag 'x86_mm_for_6.2_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4f292c4d
      Linus Torvalds authored
      Pull x86 mm updates from Dave Hansen:
       "New Feature:
      
         - Randomize the per-cpu entry areas
      
        Cleanups:
      
         - Have CR3_ADDR_MASK use PHYSICAL_PAGE_MASK instead of open coding it
      
         - Move to "native" set_memory_rox() helper
      
         - Clean up pmd_get_atomic() and i386-PAE
      
         - Remove some unused page table size macros"
      
      * tag 'x86_mm_for_6.2_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (35 commits)
        x86/mm: Ensure forced page table splitting
        x86/kasan: Populate shadow for shared chunk of the CPU entry area
        x86/kasan: Add helpers to align shadow addresses up and down
        x86/kasan: Rename local CPU_ENTRY_AREA variables to shorten names
        x86/mm: Populate KASAN shadow for entire per-CPU range of CPU entry area
        x86/mm: Recompute physical address for every page of per-CPU CEA mapping
        x86/mm: Rename __change_page_attr_set_clr(.checkalias)
        x86/mm: Inhibit _PAGE_NX changes from cpa_process_alias()
        x86/mm: Untangle __change_page_attr_set_clr(.checkalias)
        x86/mm: Add a few comments
        x86/mm: Fix CR3_ADDR_MASK
        x86/mm: Remove P*D_PAGE_MASK and P*D_PAGE_SIZE macros
        mm: Convert __HAVE_ARCH_P..P_GET to the new style
        mm: Remove pointless barrier() after pmdp_get_lockless()
        x86/mm/pae: Get rid of set_64bit()
        x86_64: Remove pointless set_64bit() usage
        x86/mm/pae: Be consistent with pXXp_get_and_clear()
        x86/mm/pae: Use WRITE_ONCE()
        x86/mm/pae: Don't (ab)use atomic64
        mm/gup: Fix the lockless PMD access
        ...
      4f292c4d
    • Linus Torvalds's avatar
      Merge tag 'msi-fixes-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms · 03d84bd6
      Linus Torvalds authored
      Pull MSI fixes from Marc Zyngier:
       "Thomas tasked me with sending out a few urgent fixes after the giant
        MSI rework that landed in 6.2, as both s390 and powerpc ended-up
        suffering from it (they do not use the full core code infrastructure,
        leading to these previously undetected issues):
      
         - Return MSI_XA_DOMAIN_SIZE as the maximum MSI index when the
           architecture does not make use of irq domains instead of returning
           0, which is pretty limiting.
      
         - Check for the presence of an irq domain when validating the MSI
           iterator, as s390/powerpc won't have one.
      
         - Fix powerpc's MSI backends which fail to clear the descriptor's IRQ
           field on teardown, leading to a splat and leaked descriptors"
      
      * tag 'msi-fixes-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms:
        powerpc/msi: Fix deassociation of MSI descriptors
        genirq/msi: Return MSI_XA_DOMAIN_SIZE as the maximum MSI index when no domain is present
        genirq/msi: Check for the presence of an irq domain when validating msi_ctrl
      03d84bd6
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · f9ff5644
      Linus Torvalds authored
      Pull HSI updates from Sebastian Reichel:
      
       - misc small fixes
      
      * tag 'hsi-for-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        HSI: omap_ssi_core: Fix error handling in ssi_init()
        headers: Remove some left-over license text in include/uapi/linux/hsi/
        HSI: omap_ssi_core: fix possible memory leak in ssi_probe()
        HSI: omap_ssi_core: fix unbalanced pm_runtime_disable()
        HSI: ssi_protocol: Fix return type of ssip_pn_xmit()
      f9ff5644
    • Linus Torvalds's avatar
      Merge tag 'for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · b220f311
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
      
       - bq25890: add charge voltage/current support
      
       - bd99954: convert to linear range
      
       - convert all i2c drivers to use probe_new
      
       - misc fixes and cleanups
      
      * tag 'for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (51 commits)
        power: supply: fix null pointer dereferencing in power_supply_get_battery_info
        power: supply: bq25890: Fix usb-notifier probe and remove races
        power: supply: bq25890: Ensure pump_express_work is cancelled on remove
        power: supply: Fix refcount leak in rk817_charger_probe
        power: supply: bq25890: Only use pdata->regulator_init_data for vbus
        power: supply: ab8500: Fix error handling in ab8500_charger_init()
        power: supply: cw2015: Fix potential null-ptr-deref in cw_bat_probe()
        power: supply: z2_battery: Fix possible memleak in z2_batt_probe()
        power: supply: z2_battery: Convert to i2c's .probe_new()
        power: supply: ucs1002: Convert to i2c's .probe_new()
        power: supply: smb347: Convert to i2c's .probe_new()
        power: supply: sbs-manager: Convert to i2c's .probe_new()
        power: supply: sbs: Convert to i2c's .probe_new()
        power: supply: rt9455: Convert to i2c's .probe_new()
        power: supply: rt5033_battery: Convert to i2c's .probe_new()
        power: supply: max17042_battery: Convert to i2c's .probe_new()
        power: supply: max17040: Convert to i2c's .probe_new()
        power: supply: max14656: Convert to i2c's .probe_new()
        power: supply: ltc4162-l: Convert to i2c's .probe_new()
        power: supply: ltc2941: Convert to i2c's .probe_new()
        ...
      b220f311
    • Linus Torvalds's avatar
      Merge tag 'linux-watchdog-6.2-rc1' of git://www.linux-watchdog.org/linux-watchdog · b611996e
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
      
       - Add Advantech EC watchdog driver
      
       - Add support for MT6795 Helio X10 watchdog and toprgu
      
       - Add support for MT8188 watchdog device
      
       - Remove #ifdef guards for PM related functions
      
       - Other fixes and improvements
      
      * tag 'linux-watchdog-6.2-rc1' of git://www.linux-watchdog.org/linux-watchdog:
        watchdog: aspeed: Enable pre-timeout interrupt
        watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running
        watchdog: rn5t618: add support for read out bootstatus
        watchdog: kempld: Remove #ifdef guards for PM related functions
        watchdog: omap: Remove #ifdef guards for PM related functions
        watchdog: twl4030: Remove #ifdef guards for PM related functions
        watchdog: at91rm9200: Remove #ifdef guards for PM related functions
        watchdog: Add Advantech EC watchdog driver
        dt-bindings: watchdog: mediatek,mtk-wdt: Add compatible for MT8173
        dt-bindings: watchdog: mediatek,mtk-wdt: Add compatible for MT6795
        dt-bindings: watchdog: mediatek: Convert mtk-wdt to json-schema
        watchdog: mediatek: mt8188: add wdt support
        dt-bindings: reset: mt8188: add toprgu reset-controller header file
        dt-bindings: watchdog: Add compatible for MediaTek MT8188
        watchdog: mtk_wdt: Add support for MT6795 Helio X10 watchdog and toprgu
      b611996e
    • Linus Torvalds's avatar
      Merge tag 'leds-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds · 75caf594
      Linus Torvalds authored
      Pull LED updates from Pavel Machek:
       "Lee Jones offered his help with maintaining LEDs, thanks a lot.
      
        Plus, there are some bugfixes as a bonus"
      
      * tag 'leds-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds:
        leds: MAINTAINERS: include dt-bindings headers
        leds: qcom,pm8058-led: Convert to DT schema
        leds: use sysfs_emit() to instead of scnprintf()
        leds: is31fl319x: Fix setting current limit for is31fl319{0,1,3}
        MAINTAINERS: Add additional co-maintainer to LEDs
        leds: lp5523: fix out-of-bounds bug in lp5523_selftest()
        dt-bindings: leds: Add 'cpuX' to 'linux,default-trigger'
        led: qcom-lpg: Fix sleeping in atomic
        leds: max8997: Don't error if there is no pdata
        leds: lp55xx: remove variable j
        leds-pca955x: Remove the unused function pca95xx_num_led_regs()
      75caf594
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · ed56954c
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Fix two build warnings on 32 bit platforms
      
        It seems the linux-next CI and 0-day bot are not testing enough 32 bit
        configurations, as soon as you merged the rdma pull request there were
        two instant reports of warnings on these sytems that I would have
        thought should have been covered by time in linux-next
      
        Anyhow, here are the fixes so people don't hit problems with -Werror"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/siw: Fix pointer cast warning
        RDMA/rxe: Fix compile warnings on 32-bit
      ed56954c
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v6.1-rc7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 6830d503
      Linus Torvalds authored
      Pull gfs2 updtaes from Andreas Gruenbacher:
      
       - Revert a change to delete_work_func() that has gone wrong in commit
         c412a97c ("gfs2: Use TRY lock in gfs2_inode_lookup for UNLINKED
         inodes").
      
       - Avoid dequeuing GL_ASYNC glock holders twice by first checking if the
         holder is still queued.
      
       - gfs2: Always check the inode size of inline inodes when reading in
         inodes to prevent corrupt filesystem images from causing weid errors.
      
       - Properly handle a race between gfs2_create_inode() and
         gfs2_inode_lookup() that causes insert_inode_locked4() to return
         -EBUSY.
      
       - Fix and clean up the interaction between gfs2_create_inode() and
         gfs2_evict_inode() by completely handling the inode deallocation and
         destruction in gfs2_evict_inode().
      
       - Remove support for glock holder auto-demotion as we have no current
         plans of using this feature again.
      
       - And a few more minor cleanups and clarifications.
      
      * tag 'gfs2-v6.1-rc7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Remove support for glock holder auto-demotion (2)
        gfs2: Remove support for glock holder auto-demotion
        gfs2: Minor gfs2_try_evict cleanup
        gfs2: Partially revert gfs2_inode_lookup change
        gfs2: Add gfs2_inode_lookup comment
        gfs2: Uninline and improve glock_{set,clear}_object
        gfs2: Simply dequeue iopen glock in gfs2_evict_inode
        gfs2: Clean up after gfs2_create_inode rework
        gfs2: Avoid dequeuing GL_ASYNC glock holders twice
        gfs2: Make gfs2_glock_hold return its glock argument
        gfs2: Always check inode size of inline inodes
        gfs2: Cosmetic gfs2_dinode_{in,out} cleanup
        gfs2: Handle -EBUSY result of insert_inode_locked4
        gfs2: Fix and clean up create / evict interaction
        gfs2: Clean up initialization of "ip" in gfs2_create_inode
        gfs2: Get rid of ghs[] in gfs2_create_inode
        gfs2: Add extra error check in alloc_dinode
      6830d503
    • Marc Zyngier's avatar
      powerpc/msi: Fix deassociation of MSI descriptors · 4545c6a3
      Marc Zyngier authored
      Since 2f2940d1 ("genirq/msi: Remove filter from
      msi_free_descs_free_range()"), the core MSI code relies on the
      msi_desc->irq field to have been cleared before the descriptor
      can be freed, as it indicates that there is no association with
      a device anymore.
      
      The irq domain code provides this guarantee, and so does s390,
      which is one of the two architectures not using irq domains for
      MSIs.
      
      Powerpc, however, is missing this particular requirements,
      leading in a splat and leaked MSI descriptors.
      
      Adding the now required irq reset to the handful of powerpc backends
      that implement MSIs fixes that particular problem.
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/70dab88e-6119-0c12-7c6a-61bcbe239f66@roeck-us.net
      4545c6a3
  2. 16 Dec, 2022 16 commits
    • Arnd Bergmann's avatar
      RDMA/siw: Fix pointer cast warning · 5244ca88
      Arnd Bergmann authored
      The previous build fix left a remaining issue in configurations with
      64-bit dma_addr_t on 32-bit architectures:
      
      drivers/infiniband/sw/siw/siw_qp_tx.c: In function 'siw_get_pblpage':
      drivers/infiniband/sw/siw/siw_qp_tx.c:32:37: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
         32 |                 return virt_to_page((void *)paddr);
            |                                     ^
      
      Use the same double cast here that the driver uses elsewhere to convert
      between dma_addr_t and void*.
      
      Fixes: 0d1b756a ("RDMA/siw: Pass a pointer to virt_to_page()")
      Link: https://lore.kernel.org/r/20221215170347.2612403-1-arnd@kernel.orgSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarBernard Metzler <bmt@zurich.ibm.com>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      5244ca88
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 77856d91
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
      
       - Fix Kconfig dependencies to re-allow the enabling of function graph
         tracer and shadow call stacks at the same time.
      
       - Revert the workaround for CPU erratum #2645198 since the CONFIG_
         guards were incorrect and the code has therefore not seen any real
         exposure in -next.
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        Revert "arm64: errata: Workaround possible Cortex-A715 [ESR|FAR]_ELx corruption"
        ftrace: Allow WITH_ARGS flavour of graph tracer with shadow call stack
      77856d91
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.2-1-2022-12-16' of... · aa4800e3
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.2-1-2022-12-16' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools updates from Arnaldo Carvalho de Melo:
       "Libraries:
      
         - Drop the old copy of libtraceevent in tools/lib/traceevent/ now
           that all major distros ship it from its external repository.
      
           This is now just another feature detection, emitting a warning when
           the libtraceevent-dev[el] package isn't installed, disabling the
           build of perf features and tools that strictly require parsing
           things from tracefs while keeping the core functionality present
           and working with a subset of the events, the most used ones like
           CPU cycles, hardware cache and also vendor events, etc.
      
           This was tested with lots of containers for Fedora, Debian,
           OpenSUSE, Alpine Linux, Ubuntu, with cross builds, etc.
      
        Build:
      
         - Update to C standard to gnu11, like was done for the kernel.
      
         - Install the tools/lib/ libraries locally instead of having headers
           searched directly from the source code directories, to help the
           cases where we can build either from in-kernel source libraries or
           from the same library shipped as a distro package, as is the case
           with libbpf and was the case with libtraceevent.
      
        perf stat:
      
         - Do not delay the workload with --delay, the delay is just for
           starting to count the events, to skip noise at workload startup.
      
         - When we have events for each cgroup, the metric should be printed
           for each cgroup separately.
      
              $ perf stat -a --for-each-cgroup system.slice,user.slice --metric-only sleep 1
      
              Performance counter stats for 'system wide':
      
                              GHz  insn per cycle  branch-misses of all branches
              system.slice  3.792      0.61                  3.24%
              user.slice    3.661      2.32                  0.37%
      
         - Fix printing field separator in CSV metrics output.
      
         - Fix --metric-only --json output.
      
         - Fix summary output in CSV with --metric-only.
      
         - Update event group check for support of uncore event.
      
        perf test:
      
         - Stop requiring a C toolchain in shell tests, instead add a workload
           option that has all the previously C snippets built as part of
           'perf test -w' that then get used in the 'perf test' shell scripts.
      
         - Add event group test for events in multiple PMUs
      
         - The "kernel lock contention analysis" test should not print
           warnings in quiet mode.
      
         - Add attr tests for ARM64's new VG register.
      
         - Fix record test on KVM guests, as using precise flag with the
           br_inst_retired.near_call event causes the test fail on KVM guests,
           even when the guests have PMU forwarding enabled and the event
           itself is supported, so just remove the precise flag from the
           event.
      
         - Add mechanism for skipping attr tests on specific kernel versions
           where it is known that these checks will fail.
      
         - Skip watchpoint tests if no watchpoints available.
      
         - Add more Intel PT 'perf test' entries: hybrid CPUs, split the
           packet decoder into a suite of subtests.
      
        perf script:
      
         - Introduce task analyzer python script, where one first records some events:
      
           Recording can be done in two ways:
      
              $ perf script record tasks-analyzer -- sleep 10
              $ perf record -e sched:sched_switch -a -- sleep 10
      
           The script can parse any perf.data files, as long as it has
           sched:sched_switch events, other events will be ignored.
      
           The most simple report use case is to just call the script without
           arguments.
      
           Runtime is the time the task was running on the CPU, Time Out-In is
           the time between the process being scheduled *out* and scheduled
           back *in*. So the last time span between two executions:
      
              $ perf script report tasks-analyzer
                  Switched-In     Switched-Out CPU    PID    TID             Comm  Runtime  Time Out-In
              15576.658891407  15576.659156086   4   2412   2428            gdbus      265         1949
              15576.659111320  15576.659455410   0   2412   2412      gnome-shell      344         2267
              15576.659491326  15576.659506173   2     74     74      kworker/2:1       15        13145
              15576.659506173  15576.659825748   2   2858   2858  gnome-terminal-      320        63263
              15576.659871270  15576.659902872   6  20932  20932    kworker/u16:0       32      2314582
              15576.659909951  15576.659945501   3  27264  27264               sh       36           -1
              15576.659853285  15576.659971052   7  27265  27265             perf      118      5050741
              [...]
      
        perf lock:
      
         - Allow concurrent record and report to support live monitoring of
           kernel lock contention without BPF:
      
              # perf lock record -a -o- sleep 1 | perf lock contention -i-
               contended   total wait     max wait     avg wait         type   caller
      
                       2     10.27 us      6.17 us      5.13 us     spinlock   load_balance+0xc03
                       1      5.29 us      5.29 us      5.29 us     rwlock:W   ep_scan_ready_list+0x54
                       1      4.12 us      4.12 us      4.12 us     spinlock   smpboot_thread_fn+0x116
                       1      3.28 us      3.28 us      3.28 us        mutex   pipe_read+0x50
      
         - Implement -t/--threads option when using BPF:
      
              $ sudo ./perf lock contention -abt -E 5 sleep 1
               contended  total wait   max wait   avg wait      pid  comm
      
                       1   740.66 ms  740.66 ms  740.66 ms     1950  nv_queue
                       3   305.50 ms  298.19 ms  101.83 ms     1884  nvidia-modeset/
                       1    25.14 us   25.14 us   25.14 us  2725038  EventManager_De
                      12    23.09 us    9.30 us    1.92 us        0  swapper
                       1    20.18 us   20.18 us   20.18 us  2725033  EventManager_De
      
         - Add -l/--lock-addr to aggregate per-lock-instance contention:
      
              $ sudo ./perf lock contention -abl sleep 1
               contended  total wait  max wait  avg wait           address  symbol
      
                       1    36.28 us  36.28 us  36.28 us  ffff92615d6448b8
                       9    10.91 us   1.84 us   1.21 us  ffffffffbaed50c0  rcu_state
                       1    10.49 us  10.49 us  10.49 us  ffff9262ac4f0c80
                       8     4.68 us   1.67 us    585 ns  ffffffffbae07a40  jiffies_lock
                       3     3.03 us   1.45 us   1.01 us  ffff9262277861e0
                       1      924 ns    924 ns    924 ns  ffff926095ba9d20
                       1      436 ns    436 ns    436 ns  ffff9260bfda4f60
      
        perf record:
      
         - Add remaining branch filters: "no_cycles", "no_flags" & "hw_index",
           to be used with hardware such as Intel's LBR that allows things
           like stitching stacks of two samples to overcome the limits of the
           number of LBR registers.
      
        Symbol resolution:
      
         - Handle .debug files created with 'objcopy --only-keep-debug', where
           program headers are zeroed and thus can't be used for adjustments,
           use the info in the runtime_ss (runtime ELF) instead.
      
        perf trace:
      
         - Add BPF based augmenter for the 'perf_event_open's 'struct
           perf_event_attr' argument.
      
         - Add BPF based augmenter for the 'clock_gettime's 'struct timespec'
           argument.
      
         - In both cases the syscall tracepoint has just the pointer value, we
           need to hook a BPF program to collect the pointer contents, and
           then, in userspace, pretty print it in 'perf trace'.
      
        perf list:
      
         - Introduce JSON output of events.
      
         - Streamline how the expression specifying what events should be
           shown is handled, fixing several corner cases, such as the metric
           filter that is specified as a glob but was using strstr().
      
        perf probe:
      
         - Fix to avoid crashing if DW_AT_decl_file is NULL, coping with clang
           generating DWARF5 like that.
      
         - Use dwarf_attr_integrate() as generic DWARF attr accessor as it
           supersedes dwarf_attr(), supporting abstact origin DIEs.
      
        perf inject:
      
         - Set PERF_RECORD_MISC_BUILD_ID_SIZE in the PERF_RECORD_HEADER_BUILD_ID
           so that perf.data readers can get the real build-id size and avoid
           trailing zeroes.
      
        perf data:
      
         - Add tracepoint fields when converting a perf.data file to JSON.
      
        arm64:
      
         - Fix mksyscalltbl, don't lose syscalls due to sort -nu.
      
         - Add Arm Neoverse V2 PMU events.
      
        riscv:
      
         - Add riscv sbi firmware std event files.
      
         - Add Sifive U74 vendor events (JSON) file.
      
         - Add some more events and metrics for Alderlake/Alderlake-N.
      
        Documentation:
      
         - Add data documentation for the PMU structs in the C source code.
      
        Miscellaneous:
      
         - Periodic sanitization of headers, adding missing includes, removing
           needless ones, creating new ones, etc.
      
         - Use sig_atomic_t for signal handlers to avoid undefined behaviour
           in all perf tools.
      
         - Fixes for libbpf 1.0+ compatibility (maps, etc) on 'perf trace' BPF
           examples.
      
         - Remove some old perf bpf examples, leave the best ones that
           demonstrate how to associate BPF functions to points in the kernel.
      
         - Make quiet mode consistent between tools.
      
         - Use dedicated non-atomic clear/set bit helpers.
      
         - Use "grep -E" instead of "egrep" as recommended by warning emitted
           by GNU grep since at least version 3.8.
      
         - Complete list of supported subcommands in the 'perf daemon' help
           message.
      
         - Update John Garry's email address for arm64 perf tooling on the
           MAINTAINERS file, he moved from Huawei to Oracle"
      
      * tag 'perf-tools-for-v6.2-1-2022-12-16' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (239 commits)
        libperf: Fix install_pkgconfig target
        perf tools: Use "grep -E" instead of "egrep"
        perf stat: Do not delay the workload with --delay
        perf evlist: Remove group option.
        perf build: Fix python/perf.so library's name
        perf test arm64: Add attr tests for new VG register
        perf test: Add mechanism for skipping attr tests on kernel versions
        perf test: Add mechanism for skipping attr tests on auxiliary vector values
        perf test: Add ability to test exit code for attr tests
        perf test: add new task-analyzer tests
        perf script: task-analyzer add csv support
        perf script: Introduce task analyzer python script
        perf cs-etm: Print auxtrace info even if OpenCSD isn't linked
        perf cs-etm: Cleanup cs_etm__process_auxtrace_info()
        perf cs-etm: Tidy up auxtrace info header printing
        perf cs-etm: Remove unused stub methods
        perf cs-etm: Print unknown header version as an error
        perf test: Update perf lock contention test
        perf lock contention: Add -l/--lock-addr option
        perf lock contention: Implement -t/--threads option for BPF
        ...
      aa4800e3
    • Linus Torvalds's avatar
      Fix mismerge due to devnode now taking a 'const *' device · dcde56bb
      Linus Torvalds authored
      This was a mismerge of a semantic conflict in my merge of the driver
      core updates, where commit ff62b8e6 ("driver core: make struct
      class.devnode() take a const *") changed the devnode function pointer
      type.  In the meantime, the drm tree I merged earlier had introduced a
      new use of that in commit 8bf48897 ("drivers/accel: define kconfig
      and register a new major").
      
      And of course this happens when I'm traveling with my laptop, and thus
      didn't do a full allmodconfig build between every pull and before
      pushing my work out.
      
      So I only noticed later as I was doing my full build.
      Brown-paper-bag-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Fixes: 71a7507a Merge tag 'driver-core-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-coreSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dcde56bb
    • Thomas Gleixner's avatar
      genirq/msi: Return MSI_XA_DOMAIN_SIZE as the maximum MSI index when no domain is present · e982ad82
      Thomas Gleixner authored
      On architectures such as s390 that do not use irq domains for MSI,
      returning 0 as the maximum MSI index is a bit counter-productive,
      as it indicates that no MSI can be allocated. Bad idea.
      
      Instead, return the maximum we're willing to support in the MSI
      backing store (MSI_XA_DOMAIN_SIZE), and let the arch code do its
      usual thing.
      
      Thanks to Matthew Rosato for fixing the fix.
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      [maz: commit message]
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/87fsdgzpqs.ffs@tglx
      e982ad82
    • Marc Zyngier's avatar
      genirq/msi: Check for the presence of an irq domain when validating msi_ctrl · db3568fd
      Marc Zyngier authored
      For architectures such as s390 and powerpc that do not use
      irq domains for MSIs, dev->msi.domain is always NULL, so
      the per-device, per-bus MSI domain is also guaranteed to
      be NULL.
      
      So checking one without checking the other is bound to result
      in a splat, followed by a memory leak as we don't free the MSI
      descriptors.
      
      Add the missing check.
      Reported-by: default avatarMatthew Rosato <mjrosato@linux.ibm.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/e570e70d-19bc-101b-0481-ff9a3cab3504@linux.ibm.com
      db3568fd
    • Alexander Gordeev's avatar
      libperf: Fix install_pkgconfig target · 4ff17c44
      Alexander Gordeev authored
      Commit 47e02b94 ("tools lib perf: Add dependency test to install_headers")
      misses the notion of $(DESTDIR_SQ) for install_pkgconfig target, which leads to
      error:
      
        install: cannot create regular file '/usr/lib64/pkgconfig/libperf.pc': Permission denied
        make: *** [Makefile:210: install_pkgconfig] Error 1
      Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Josh Poimboeuf <jpoimboe@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Masahiro Yamada <masahiroy@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Nicolas Schier <nicolas@fjasle.eu>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Tom Rix <trix@redhat.com>
      Cc: bpf@vger.kernel.org
      Cc: llvm@lists.linux.dev
      Link: http://lore.kernel.org/lkml/Y5w/cWKyb8vpNMfA@li-4a3a4a4c-28e5-11b2-a85c-a8d192c6f089.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      4ff17c44
    • Arnaldo Carvalho de Melo's avatar
      Merge remote-tracking branch 'torvalds/master' into perf/core · 1a931707
      Arnaldo Carvalho de Melo authored
      To resolve a trivial merge conflict with c302378b ("libbpf:
      Hashmap interface update to allow both long and void* keys/values"),
      where a function present upstream was removed in the perf tools
      development tree.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1a931707
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 71a7507a
      Linus Torvalds authored
      Pull driver core updates from Greg KH:
       "Here is the set of driver core and kernfs changes for 6.2-rc1.
      
        The "big" change in here is the addition of a new macro,
        container_of_const() that will preserve the "const-ness" of a pointer
        passed into it.
      
        The "problem" of the current container_of() macro is that if you pass
        in a "const *", out of it can comes a non-const pointer unless you
        specifically ask for it. For many usages, we want to preserve the
        "const" attribute by using the same call. For a specific example, this
        series changes the kobj_to_dev() macro to use it, allowing it to be
        used no matter what the const value is. This prevents every subsystem
        from having to declare 2 different individual macros (i.e.
        kobj_const_to_dev() and kobj_to_dev()) and having the compiler enforce
        the const value at build time, which having 2 macros would not do
        either.
      
        The driver for all of this have been discussions with the Rust kernel
        developers as to how to properly mark driver core, and kobject,
        objects as being "non-mutable". The changes to the kobject and driver
        core in this pull request are the result of that, as there are lots of
        paths where kobjects and device pointers are not modified at all, so
        marking them as "const" allows the compiler to enforce this.
      
        So, a nice side affect of the Rust development effort has been already
        to clean up the driver core code to be more obvious about object
        rules.
      
        All of this has been bike-shedded in quite a lot of detail on lkml
        with different names and implementations resulting in the tiny version
        we have in here, much better than my original proposal. Lots of
        subsystem maintainers have acked the changes as well.
      
        Other than this change, included in here are smaller stuff like:
      
         - kernfs fixes and updates to handle lock contention better
      
         - vmlinux.lds.h fixes and updates
      
         - sysfs and debugfs documentation updates
      
         - device property updates
      
        All of these have been in the linux-next tree for quite a while with
        no problems"
      
      * tag 'driver-core-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (58 commits)
        device property: Fix documentation for fwnode_get_next_parent()
        firmware_loader: fix up to_fw_sysfs() to preserve const
        usb.h: take advantage of container_of_const()
        device.h: move kobj_to_dev() to use container_of_const()
        container_of: add container_of_const() that preserves const-ness of the pointer
        driver core: fix up missed drivers/s390/char/hmcdrv_dev.c class.devnode() conversion.
        driver core: fix up missed scsi/cxlflash class.devnode() conversion.
        driver core: fix up some missing class.devnode() conversions.
        driver core: make struct class.devnode() take a const *
        driver core: make struct class.dev_uevent() take a const *
        cacheinfo: Remove of_node_put() for fw_token
        device property: Add a blank line in Kconfig of tests
        device property: Rename goto label to be more precise
        device property: Move PROPERTY_ENTRY_BOOL() a bit down
        device property: Get rid of __PROPERTY_ENTRY_ARRAY_EL*SIZE*()
        kernfs: fix all kernel-doc warnings and multiple typos
        driver core: pass a const * into of_device_uevent()
        kobject: kset_uevent_ops: make name() callback take a const *
        kobject: kset_uevent_ops: make filter() callback take a const *
        kobject: make kobject_namespace take a const *
        ...
      71a7507a
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · ba54ff1f
      Linus Torvalds authored
      Pull char/misc driver updates from Greg KH:
       "Here is the large set of char/misc and other driver subsystem changes
        for 6.2-rc1. Nothing earth-shattering in here at all, just a lot of
        new driver development and minor fixes.
      
        Highlights include:
      
         - fastrpc driver updates
      
         - iio new drivers and updates
      
         - habanalabs driver updates for new hardware and features
      
         - slimbus driver updates
      
         - speakup module parameters added to aid in boot time configuration
      
         - i2c probe_new conversions for lots of different drivers
      
         - other small driver fixes and additions
      
        One semi-interesting change in here is the increase of the number of
        misc dynamic minors available to 1048448 to handle new huge-cpu
        systems.
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'char-misc-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (521 commits)
        extcon: usbc-tusb320: Convert to i2c's .probe_new()
        extcon: rt8973: Convert to i2c's .probe_new()
        extcon: fsa9480: Convert to i2c's .probe_new()
        extcon: max77843: Replace irqchip mask_invert with unmask_base
        chardev: fix error handling in cdev_device_add()
        mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
        drivers: mcb: fix resource leak in mcb_probe()
        coresight: etm4x: fix repeated words in comments
        coresight: cti: Fix null pointer error on CTI init before ETM
        coresight: trbe: remove cpuhp instance node before remove cpuhp state
        counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update
        misc: fastrpc: Add dma_mask to fastrpc_channel_ctx
        misc: fastrpc: Add mmap request assigning for static PD pool
        misc: fastrpc: Safekeep mmaps on interrupted invoke
        misc: fastrpc: Add support for audiopd
        misc: fastrpc: Rework fastrpc_req_munmap
        misc: fastrpc: Use fastrpc_map_put in fastrpc_map_create on fail
        misc: fastrpc: Add fastrpc_remote_heap_alloc
        misc: fastrpc: Add reserved mem support
        misc: fastrpc: Rename audio protection domain to root
        ...
      ba54ff1f
    • Linus Torvalds's avatar
      Merge tag 'tty-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · dd6f9b17
      Linus Torvalds authored
      Pull tty/serial driver updates from Greg KH:
       "Here is the "big" set of tty/serial driver changes for 6.2-rc1.
      
        As in previous kernel releases, nothing big here at all, just some
        small incremental serial/tty layer cleanups and some individual driver
        additions and fixes. Highlights are:
      
         - serial helper macros from Jiri Slaby to reduce the amount of
           duplicated code in serial drivers
      
         - api cleanups and consolidations from Ilpo Järvinen in lots of
           serial drivers
      
         - the usual set of n_gsm fixes from Daniel Starke as that code gets
           exercised more
      
         - TIOCSTI is finally able to be disabled if requested (security
           hardening feature from Kees Cook)
      
         - fsl_lpuart driver fixes and features added
      
         - other small serial driver additions and fixes
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'tty-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (97 commits)
        serial: atmel: don't stop the transmitter when doing PIO
        serial: atmel: cleanup atmel_start+stop_tx()
        tty: serial: fsl_lpuart: switch to new dmaengine_terminate_* API
        serial: sunsab: Fix error handling in sunsab_init()
        serial: altera_uart: fix locking in polling mode
        serial: pch: Fix PCI device refcount leak in pch_request_dma()
        tty: serial: fsl_lpuart: Use pm_ptr() to avoid need to make pm __maybe_unused
        tty: serial: fsl_lpuart: Add runtime pm support
        tty: serial: fsl_lpuart: enable wakeup source for lpuart
        serdev: Replace poll loop by readx_poll_timeout() macro
        tty: synclink_gt: unwind actions in error path of net device open
        serial: stm32: move dma_request_chan() before clk_prepare_enable()
        dt-bindings: serial: xlnx,opb-uartlite: Drop 'contains' from 'xlnx,use-parity'
        serial: pl011: Do not clear RX FIFO & RX interrupt in unthrottle.
        serial: amba-pl011: avoid SBSA UART accessing DMACR register
        tty: serial: altera_jtaguart: remove struct altera_jtaguart
        tty: serial: altera_jtaguart: use uart_port::read_status_mask
        tty: serial: altera_jtaguart: remove unused altera_jtaguart::sigs
        tty: serial: altera_jtaguart: remove flag from altera_jtaguart_rx_chars()
        n_tty: Rename tail to old_tail in n_tty_read()
        ...
      dd6f9b17
    • Linus Torvalds's avatar
      Merge tag 'staging-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · b83a7080
      Linus Torvalds authored
      Pull staging driver updates from Greg KH:
       "Here is the large set of staging driver changes for 6.2-rc1.
      
        Another round of cleanups for staging drivers with no big additions.
        Overall more lines were removed than added, always a nice sign, with
        nothing happening in here other than general coding style cleanups and
        minor fixes in the drivers. Full, boring, details are in the shortlog.
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'staging-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (253 commits)
        vme: Use root_device_register() not underlined version
        staging: rtl8192e: Fix spelling mistake "ContryIE" -> "CountryIE"
        vme: Fix error not catched in fake_init()
        staging: vme_user: remove multiple blank lines
        staging: r8188eu: use subtype helper in rtw_check_bcn_info
        staging: r8188eu: use subtype helpers in collect_bss_info
        staging: r8188eu: remove unused da parameter
        staging: r8188eu: merge two probereq_p2p functions
        staging: r8188eu: simplify err handling for unknown station
        staging: r8188eu: handle the non-ap case first
        staging: r8188eu: move bBusyTraffic update
        staging: r8188eu: read reason code from ieee80211_mgmt
        staging: r8188eu: use ieee80211_mgmt to parse addresses
        staging: r8188eu: remove a variable
        staging: r8188eu: simplify error handling for missing station
        staging: r8188eu: stop beacon processing if kmalloc fails
        staging: r8188eu: exit if beacon is not from our bss
        staging: r8188eu: simplify update_sta_support_rate params
        staging: r8188eu: use ie buffer in update_beacon_info
        staging: r8188eu: pass only ies to process_p2p_ps_ie
        ...
      b83a7080
    • Linus Torvalds's avatar
      Merge tag 'usb-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 58bcac11
      Linus Torvalds authored
      Pull USB and Thunderbolt driver updates from Greg KH:
       "Here is the large set of USB and Thunderbolt driver changes for
        6.2-rc1. Overall, thanks to the removal of a driver, more lines were
        removed than added, a nice change. Highlights include:
      
         - removal of the sisusbvga driver that was not used by anyone anymore
      
         - minor thunderbolt driver changes and tweaks
      
         - chipidea driver updates
      
         - usual set of typec driver features and hardware support added
      
         - musb minor driver fixes
      
         - fotg210 driver fixes, bringing that hardware back from the "dead"
      
         - minor dwc3 driver updates
      
         - addition, and then removal, of a list.h helper function for many
           USB and other subsystem drivers, that ended up breaking the build.
           That will come back for 6.3-rc1, it missed this merge window.
      
         - usual xhci updates and enhancements
      
         - usb-serial driver updates and support for new devices
      
         - other minor USB driver updates
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'usb-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (153 commits)
        usb: gadget: uvc: Rename bmInterfaceFlags -> bmInterlaceFlags
        usb: dwc2: power on/off phy for peripheral mode in dual-role mode
        usb: dwc2: disable lpm feature on Rockchip SoCs
        dt-bindings: usb: mtk-xhci: add support for mt7986
        usb: dwc3: core: defer probe on ulpi_read_id timeout
        usb: ulpi: defer ulpi_register on ulpi_read_id timeout
        usb: misc: onboard_usb_hub: add Genesys Logic GL850G hub support
        dt-bindings: usb: Add binding for Genesys Logic GL850G hub controller
        dt-bindings: vendor-prefixes: add Genesys Logic
        usb: fotg210-udc: fix potential memory leak in fotg210_udc_probe()
        usb: typec: tipd: Set mode of operation for USB Type-C connector
        usb: gadget: udc: drop obsolete dependencies on COMPILE_TEST
        usb: musb: remove extra check in musb_gadget_vbus_draw
        usb: gadget: uvc: Prevent buffer overflow in setup handler
        usb: dwc3: qcom: Fix memory leak in dwc3_qcom_interconnect_init
        usb: typec: wusb3801: fix fwnode refcount leak in wusb3801_probe()
        usb: storage: Add check for kcalloc
        USB: sisusbvga: use module_usb_driver()
        USB: sisusbvga: rename sisusb.c to sisusbvga.c
        USB: sisusbvga: remove console support
        ...
      58bcac11
    • Linus Torvalds's avatar
      Merge tag 'exfat-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat · 84e57d29
      Linus Torvalds authored
      Pull exfat update from Namjae Jeon:
      
       - simplify and remove some redundant directory entry code
      
       - optimize the size of exfat_entry_set_cache and its allocation policy
      
       - improve the performance for creating files and directories
      
      * tag 'exfat-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat:
        exfat: reuse exfat_find_location() to simplify exfat_get_dentry_set()
        exfat: fix overflow in sector and cluster conversion
        exfat: remove i_size_write() from __exfat_truncate()
        exfat: remove argument 'size' from exfat_truncate()
        exfat: remove unnecessary arguments from exfat_find_dir_entry()
        exfat: remove unneeded codes from __exfat_rename()
        exfat: remove call ilog2() from exfat_readdir()
        exfat: replace magic numbers with Macros
        exfat: rename exfat_free_dentry_set() to exfat_put_dentry_set()
        exfat: move exfat_entry_set_cache from heap to stack
        exfat: support dynamic allocate bh for exfat_entry_set_cache
        exfat: reduce the size of exfat_entry_set_cache
        exfat: hint the empty entry which at the end of cluster chain
        exfat: simplify empty entry hint
      84e57d29
    • Linus Torvalds's avatar
      Merge tag 'for-6.2/writeback-2022-12-12' of git://git.kernel.dk/linux · 23dc9c75
      Linus Torvalds authored
      Pull writeback updates from Jens Axboe:
      
       - Sanity check adding freed inodes to lists (Jan)
      
       - Removal of an old unused define (Miaohe)
      
      * tag 'for-6.2/writeback-2022-12-12' of git://git.kernel.dk/linux:
        writeback: remove obsolete macro EXPIRE_DIRTY_ATIME
        writeback: Add asserts for adding freed inode to lists
      23dc9c75
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · fe36bb87
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
      
       - Add options to the osnoise tracer:
            - 'panic_on_stop' option that panics the kernel if osnoise is
              greater than some user defined threshold.
            - 'preempt' option, to test noise while preemption is disabled
            - 'irq' option, to test noise when interrupts are disabled
      
       - Add .percent and .graph suffix to histograms to give different
         outputs
      
       - Add nohitcount to disable showing hitcount in histogram output
      
       - Add new __cpumask() to trace event fields to annotate that a unsigned
         long array is a cpumask to user space and should be treated as one.
      
       - Add trace_trigger kernel command line parameter to enable trace event
         triggers at boot up. Useful to trace stack traces, disable tracing
         and take snapshots.
      
       - Fix x86/kmmio mmio tracer to work with the updates to lockdep
      
       - Unify the panic and die notifiers
      
       - Add back ftrace_expect reference that is used to extract more
         information in the ftrace_bug() code.
      
       - Have trigger filter parsing errors show up in the tracing error log.
      
       - Updated MAINTAINERS file to add kernel tracing mailing list and
         patchwork info
      
       - Use IDA to keep track of event type numbers.
      
       - And minor fixes and clean ups
      
      * tag 'trace-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (44 commits)
        tracing: Fix cpumask() example typo
        tracing: Improve panic/die notifiers
        ftrace: Prevent RCU stall on PREEMPT_VOLUNTARY kernels
        tracing: Do not synchronize freeing of trigger filter on boot up
        tracing: Remove pointer (asterisk) and brackets from cpumask_t field
        tracing: Have trigger filter parsing errors show up in error_log
        x86/mm/kmmio: Remove redundant preempt_disable()
        tracing: Fix infinite loop in tracing_read_pipe on overflowed print_trace_line
        Documentation/osnoise: Add osnoise/options documentation
        tracing/osnoise: Add preempt and/or irq disabled options
        tracing/osnoise: Add PANIC_ON_STOP option
        Documentation/osnoise: Escape underscore of NO_ prefix
        tracing: Fix some checker warnings
        tracing/osnoise: Make osnoise_options static
        tracing: remove unnecessary trace_trigger ifdef
        ring-buffer: Handle resize in early boot up
        tracing/hist: Fix issue of losting command info in error_log
        tracing: Fix issue of missing one synthetic field
        tracing/hist: Fix out-of-bound write on 'action_data.var_ref_idx'
        tracing/hist: Fix wrong return value in parse_action_params()
        ...
      fe36bb87
  3. 15 Dec, 2022 15 commits
    • Linus Torvalds's avatar
      Merge tag '6.2-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · 851f657a
      Linus Torvalds authored
      Pull cifs client updates from Steve French:
      
       - SMB3.1.1 POSIX Extensions fixes
      
       - remove use of generic_writepages() and ->cifs_writepage(), in favor
         of ->cifs_writepages() and ->migrate_folio()
      
       - memory management fixes
      
       - mount parm parsing fixes
      
       - minor cleanup fixes
      
      * tag '6.2-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Remove duplicated include in cifsglob.h
        cifs: fix oops during encryption
        cifs: print warning when conflicting soft vs. hard mount options specified
        cifs: fix missing display of three mount options
        cifs: fix various whitespace errors in headers
        cifs: minor cleanup of some headers
        cifs: skip alloc when request has no pages
        cifs: remove ->writepage
        cifs: stop using generic_writepages
        cifs: wire up >migrate_folio
        cifs: Parse owner/group for stat in smb311 posix extensions
        cifs: Add "extbuf" and "extbuflen" args to smb2_compound_op()
        Fix path in cifs/usage.rst
      851f657a
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · ec9187ec
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "Core got a new helper 'i2c_client_get_device_id()', designware got
        some bigger updates, the rest is driver updates all over the place"
      
      * tag 'i2c-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (41 commits)
        i2c: ismt: Fix an out-of-bounds bug in ismt_access()
        i2c: mux: reg: check return value after calling platform_get_resource()
        i2c: xiic: Make sure to disable clock on .remove()
        i2c: hisi: Add support to get clock frequency from clock
        i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe
        i2c: slave-eeprom: Convert to i2c's .probe_new()
        i2c: mux: pca954x: Convert to i2c's .probe_new()
        drivers/i2c: use simple i2c probe
        i2c: mux: pca9541: switch to using .probe_new
        i2c: gpio: Fix potential unused warning for 'i2c_gpio_dt_ids'
        i2c: qcom-geni: add support for I2C Master Hub variant
        i2c: qcom-geni: add desc struct to prepare support for I2C Master Hub variant
        soc: qcom: geni-se: add support for I2C Master Hub wrapper variant
        soc: qcom: geni-se: add desc struct to specify clocks from device match data
        dt-bindings: i2c: qcom-geni: document I2C Master Hub serial I2C engine
        dt-bindings: qcom: geni-se: document I2C Master Hub wrapper variant
        dt-bindings: i2c: renesas,riic: Document RZ/Five SoC
        i2c: tegra: Set ACPI node as primary fwnode
        i2c: smbus: add DDR support for SPD
        i2c: /pasemi: PASemi I2C controller IRQ enablement
        ...
      ec9187ec
    • Linus Torvalds's avatar
      Merge tag 'vfio-v6.2-rc1' of https://github.com/awilliam/linux-vfio · 785d21ba
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Replace deprecated git://github.com link in MAINTAINERS (Palmer
         Dabbelt)
      
       - Simplify vfio/mlx5 with module_pci_driver() helper (Shang XiaoJing)
      
       - Drop unnecessary buffer from ACPI call (Rafael Mendonca)
      
       - Correct latent missing include issue in iova-bitmap and fix support
         for unaligned bitmaps. Follow-up with better fix through refactor
         (Joao Martins)
      
       - Rework ccw mdev driver to split private data from parent structure,
         better aligning with the mdev lifecycle and allowing us to remove a
         temporary workaround (Eric Farman)
      
       - Add an interface to get an estimated migration data size for a
         device, allowing userspace to make informed decisions, ex. more
         accurately predicting VM downtime (Yishai Hadas)
      
       - Fix minor typo in vfio/mlx5 array declaration (Yishai Hadas)
      
       - Simplify module and Kconfig through consolidating SPAPR/EEH code and
         config options and folding virqfd module into main vfio module (Jason
         Gunthorpe)
      
       - Fix error path from device_register() across all vfio mdev and sample
         drivers (Alex Williamson)
      
       - Define migration pre-copy interface and implement for vfio/mlx5
         devices, allowing portions of the device state to be saved while the
         device continues operation, towards reducing the stop-copy state size
         (Jason Gunthorpe, Yishai Hadas, Shay Drory)
      
       - Implement pre-copy for hisi_acc devices (Shameer Kolothum)
      
       - Fixes to mdpy mdev driver remove path and error path on probe (Shang
         XiaoJing)
      
       - vfio/mlx5 fixes for incorrect return after copy_to_user() fault and
         incorrect buffer freeing (Dan Carpenter)
      
      * tag 'vfio-v6.2-rc1' of https://github.com/awilliam/linux-vfio: (42 commits)
        vfio/mlx5: error pointer dereference in error handling
        vfio/mlx5: fix error code in mlx5vf_precopy_ioctl()
        samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe()
        hisi_acc_vfio_pci: Enable PRE_COPY flag
        hisi_acc_vfio_pci: Move the dev compatibility tests for early check
        hisi_acc_vfio_pci: Introduce support for PRE_COPY state transitions
        hisi_acc_vfio_pci: Add support for precopy IOCTL
        vfio/mlx5: Enable MIGRATION_PRE_COPY flag
        vfio/mlx5: Fallback to STOP_COPY upon specific PRE_COPY error
        vfio/mlx5: Introduce multiple loads
        vfio/mlx5: Consider temporary end of stream as part of PRE_COPY
        vfio/mlx5: Introduce vfio precopy ioctl implementation
        vfio/mlx5: Introduce SW headers for migration states
        vfio/mlx5: Introduce device transitions of PRE_COPY
        vfio/mlx5: Refactor to use queue based data chunks
        vfio/mlx5: Refactor migration file state
        vfio/mlx5: Refactor MKEY usage
        vfio/mlx5: Refactor PD usage
        vfio/mlx5: Enforce a single SAVE command at a time
        vfio: Extend the device migration protocol with PRE_COPY
        ...
      785d21ba
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 8fa590bf
      Linus Torvalds authored
      Pull kvm updates from Paolo Bonzini:
       "ARM64:
      
         - Enable the per-vcpu dirty-ring tracking mechanism, together with an
           option to keep the good old dirty log around for pages that are
           dirtied by something other than a vcpu.
      
         - Switch to the relaxed parallel fault handling, using RCU to delay
           page table reclaim and giving better performance under load.
      
         - Relax the MTE ABI, allowing a VMM to use the MAP_SHARED mapping
           option, which multi-process VMMs such as crosvm rely on (see merge
           commit 382b5b87: "Fix a number of issues with MTE, such as
           races on the tags being initialised vs the PG_mte_tagged flag as
           well as the lack of support for VM_SHARED when KVM is involved.
           Patches from Catalin Marinas and Peter Collingbourne").
      
         - Merge the pKVM shadow vcpu state tracking that allows the
           hypervisor to have its own view of a vcpu, keeping that state
           private.
      
         - Add support for the PMUv3p5 architecture revision, bringing support
           for 64bit counters on systems that support it, and fix the
           no-quite-compliant CHAIN-ed counter support for the machines that
           actually exist out there.
      
         - Fix a handful of minor issues around 52bit VA/PA support (64kB
           pages only) as a prefix of the oncoming support for 4kB and 16kB
           pages.
      
         - Pick a small set of documentation and spelling fixes, because no
           good merge window would be complete without those.
      
        s390:
      
         - Second batch of the lazy destroy patches
      
         - First batch of KVM changes for kernel virtual != physical address
           support
      
         - Removal of a unused function
      
        x86:
      
         - Allow compiling out SMM support
      
         - Cleanup and documentation of SMM state save area format
      
         - Preserve interrupt shadow in SMM state save area
      
         - Respond to generic signals during slow page faults
      
         - Fixes and optimizations for the non-executable huge page errata
           fix.
      
         - Reprogram all performance counters on PMU filter change
      
         - Cleanups to Hyper-V emulation and tests
      
         - Process Hyper-V TLB flushes from a nested guest (i.e. from a L2
           guest running on top of a L1 Hyper-V hypervisor)
      
         - Advertise several new Intel features
      
         - x86 Xen-for-KVM:
      
            - Allow the Xen runstate information to cross a page boundary
      
            - Allow XEN_RUNSTATE_UPDATE flag behaviour to be configured
      
            - Add support for 32-bit guests in SCHEDOP_poll
      
         - Notable x86 fixes and cleanups:
      
            - One-off fixes for various emulation flows (SGX, VMXON, NRIPS=0).
      
            - Reinstate IBPB on emulated VM-Exit that was incorrectly dropped
              a few years back when eliminating unnecessary barriers when
              switching between vmcs01 and vmcs02.
      
            - Clean up vmread_error_trampoline() to make it more obvious that
              params must be passed on the stack, even for x86-64.
      
            - Let userspace set all supported bits in MSR_IA32_FEAT_CTL
              irrespective of the current guest CPUID.
      
            - Fudge around a race with TSC refinement that results in KVM
              incorrectly thinking a guest needs TSC scaling when running on a
              CPU with a constant TSC, but no hardware-enumerated TSC
              frequency.
      
            - Advertise (on AMD) that the SMM_CTL MSR is not supported
      
            - Remove unnecessary exports
      
        Generic:
      
         - Support for responding to signals during page faults; introduces
           new FOLL_INTERRUPTIBLE flag that was reviewed by mm folks
      
        Selftests:
      
         - Fix an inverted check in the access tracking perf test, and restore
           support for asserting that there aren't too many idle pages when
           running on bare metal.
      
         - Fix build errors that occur in certain setups (unsure exactly what
           is unique about the problematic setup) due to glibc overriding
           static_assert() to a variant that requires a custom message.
      
         - Introduce actual atomics for clear/set_bit() in selftests
      
         - Add support for pinning vCPUs in dirty_log_perf_test.
      
         - Rename the so called "perf_util" framework to "memstress".
      
         - Add a lightweight psuedo RNG for guest use, and use it to randomize
           the access pattern and write vs. read percentage in the memstress
           tests.
      
         - Add a common ucall implementation; code dedup and pre-work for
           running SEV (and beyond) guests in selftests.
      
         - Provide a common constructor and arch hook, which will eventually
           be used by x86 to automatically select the right hypercall (AMD vs.
           Intel).
      
         - A bunch of added/enabled/fixed selftests for ARM64, covering
           memslots, breakpoints, stage-2 faults and access tracking.
      
         - x86-specific selftest changes:
      
            - Clean up x86's page table management.
      
            - Clean up and enhance the "smaller maxphyaddr" test, and add a
              related test to cover generic emulation failure.
      
            - Clean up the nEPT support checks.
      
            - Add X86_PROPERTY_* framework to retrieve multi-bit CPUID values.
      
            - Fix an ordering issue in the AMX test introduced by recent
              conversions to use kvm_cpu_has(), and harden the code to guard
              against similar bugs in the future. Anything that tiggers
              caching of KVM's supported CPUID, kvm_cpu_has() in this case,
              effectively hides opt-in XSAVE features if the caching occurs
              before the test opts in via prctl().
      
        Documentation:
      
         - Remove deleted ioctls from documentation
      
         - Clean up the docs for the x86 MSR filter.
      
         - Various fixes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (361 commits)
        KVM: x86: Add proper ReST tables for userspace MSR exits/flags
        KVM: selftests: Allocate ucall pool from MEM_REGION_DATA
        KVM: arm64: selftests: Align VA space allocator with TTBR0
        KVM: arm64: Fix benign bug with incorrect use of VA_BITS
        KVM: arm64: PMU: Fix period computation for 64bit counters with 32bit overflow
        KVM: x86: Advertise that the SMM_CTL MSR is not supported
        KVM: x86: remove unnecessary exports
        KVM: selftests: Fix spelling mistake "probabalistic" -> "probabilistic"
        tools: KVM: selftests: Convert clear/set_bit() to actual atomics
        tools: Drop "atomic_" prefix from atomic test_and_set_bit()
        tools: Drop conflicting non-atomic test_and_{clear,set}_bit() helpers
        KVM: selftests: Use non-atomic clear/set bit helpers in KVM tests
        perf tools: Use dedicated non-atomic clear/set bit helpers
        tools: Take @bit as an "unsigned long" in {clear,set}_bit() helpers
        KVM: arm64: selftests: Enable single-step without a "full" ucall()
        KVM: x86: fix APICv/x2AVIC disabled when vm reboot by itself
        KVM: Remove stale comment about KVM_REQ_UNHALT
        KVM: Add missing arch for KVM_CREATE_DEVICE and KVM_{SET,GET}_DEVICE_ATTR
        KVM: Reference to kvm_userspace_memory_region in doc and comments
        KVM: Delete all references to removed KVM_SET_MEMORY_ALIAS ioctl
        ...
      8fa590bf
    • Dave Hansen's avatar
      x86/mm: Ensure forced page table splitting · 3e844d84
      Dave Hansen authored
      There are a few kernel users like kfence that require 4k pages to work
      correctly and do not support large mappings.  They use set_memory_4k()
      to break down those large mappings.
      
      That, in turn relies on cpa_data->force_split option to indicate to
      set_memory code that it should split page tables regardless of whether
      the need to be.
      
      But, a recent change added an optimization which would return early
      if a set_memory request came in that did not change permissions.  It
      did not consult ->force_split and would mistakenly optimize away the
      splitting that set_memory_4k() needs.  This broke kfence.
      
      Skip the same-permission optimization when ->force_split is set.
      
      Fixes: 127960a05548 ("x86/mm: Inhibit _PAGE_NX changes from cpa_process_alias()")
      Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Tested-by: default avatarMarco Elver <elver@google.com>
      Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/all/CA+G9fYuFxZTxkeS35VTZMXwQvohu73W3xbZ5NtjebsVvH6hCuA@mail.gmail.com/
      3e844d84
    • Sean Christopherson's avatar
      x86/kasan: Populate shadow for shared chunk of the CPU entry area · 1cfaac24
      Sean Christopherson authored
      Popuplate the shadow for the shared portion of the CPU entry area, i.e.
      the read-only IDT mapping, during KASAN initialization.  A recent change
      modified KASAN to map the per-CPU areas on-demand, but forgot to keep a
      shadow for the common area that is shared amongst all CPUs.
      
      Map the common area in KASAN init instead of letting idt_map_in_cea() do
      the dirty work so that it Just Works in the unlikely event more shared
      data is shoved into the CPU entry area.
      
      The bug manifests as a not-present #PF when software attempts to lookup
      an IDT entry, e.g. when KVM is handling IRQs on Intel CPUs (KVM performs
      direct CALL to the IRQ handler to avoid the overhead of INTn):
      
       BUG: unable to handle page fault for address: fffffbc0000001d8
       #PF: supervisor read access in kernel mode
       #PF: error_code(0x0000) - not-present page
       PGD 16c03a067 P4D 16c03a067 PUD 0
       Oops: 0000 [#1] PREEMPT SMP KASAN
       CPU: 5 PID: 901 Comm: repro Tainted: G        W          6.1.0-rc3+ #410
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
       RIP: 0010:kasan_check_range+0xdf/0x190
        vmx_handle_exit_irqoff+0x152/0x290 [kvm_intel]
        vcpu_run+0x1d89/0x2bd0 [kvm]
        kvm_arch_vcpu_ioctl_run+0x3ce/0xa70 [kvm]
        kvm_vcpu_ioctl+0x349/0x900 [kvm]
        __x64_sys_ioctl+0xb8/0xf0
        do_syscall_64+0x2b/0x50
        entry_SYSCALL_64_after_hwframe+0x46/0xb0
      
      Fixes: 9fd429c28073 ("x86/kasan: Map shadow for percpu pages on demand")
      Reported-by: syzbot+8cdd16fd5a6c0565e227@syzkaller.appspotmail.com
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lkml.kernel.org/r/20221110203504.1985010-6-seanjc@google.com
      1cfaac24
    • Sean Christopherson's avatar
      x86/kasan: Add helpers to align shadow addresses up and down · bde258d9
      Sean Christopherson authored
      Add helpers to dedup code for aligning shadow address up/down to page
      boundaries when translating an address to its shadow.
      
      No functional change intended.
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: default avatarAndrey Ryabinin <ryabinin.a.a@gmail.com>
      Link: https://lkml.kernel.org/r/20221110203504.1985010-5-seanjc@google.com
      bde258d9
    • Sean Christopherson's avatar
      x86/kasan: Rename local CPU_ENTRY_AREA variables to shorten names · 7077d2cc
      Sean Christopherson authored
      Rename the CPU entry area variables in kasan_init() to shorten their
      names, a future fix will reference the beginning of the per-CPU portion
      of the CPU entry area, and shadow_cpu_entry_per_cpu_begin is a bit much.
      
      No functional change intended.
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: default avatarAndrey Ryabinin <ryabinin.a.a@gmail.com>
      Link: https://lkml.kernel.org/r/20221110203504.1985010-4-seanjc@google.com
      7077d2cc
    • Sean Christopherson's avatar
      x86/mm: Populate KASAN shadow for entire per-CPU range of CPU entry area · 97650148
      Sean Christopherson authored
      Populate a KASAN shadow for the entire possible per-CPU range of the CPU
      entry area instead of requiring that each individual chunk map a shadow.
      Mapping shadows individually is error prone, e.g. the per-CPU GDT mapping
      was left behind, which can lead to not-present page faults during KASAN
      validation if the kernel performs a software lookup into the GDT.  The DS
      buffer is also likely affected.
      
      The motivation for mapping the per-CPU areas on-demand was to avoid
      mapping the entire 512GiB range that's reserved for the CPU entry area,
      shaving a few bytes by not creating shadows for potentially unused memory
      was not a goal.
      
      The bug is most easily reproduced by doing a sigreturn with a garbage
      CS in the sigcontext, e.g.
      
        int main(void)
        {
          struct sigcontext regs;
      
          syscall(__NR_mmap, 0x1ffff000ul, 0x1000ul, 0ul, 0x32ul, -1, 0ul);
          syscall(__NR_mmap, 0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul);
          syscall(__NR_mmap, 0x21000000ul, 0x1000ul, 0ul, 0x32ul, -1, 0ul);
      
          memset(&regs, 0, sizeof(regs));
          regs.cs = 0x1d0;
          syscall(__NR_rt_sigreturn);
          return 0;
        }
      
      to coerce the kernel into doing a GDT lookup to compute CS.base when
      reading the instruction bytes on the subsequent #GP to determine whether
      or not the #GP is something the kernel should handle, e.g. to fixup UMIP
      violations or to emulate CLI/STI for IOPL=3 applications.
      
        BUG: unable to handle page fault for address: fffffbc8379ace00
        #PF: supervisor read access in kernel mode
        #PF: error_code(0x0000) - not-present page
        PGD 16c03a067 P4D 16c03a067 PUD 15b990067 PMD 15b98f067 PTE 0
        Oops: 0000 [#1] PREEMPT SMP KASAN
        CPU: 3 PID: 851 Comm: r2 Not tainted 6.1.0-rc3-next-20221103+ #432
        Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
        RIP: 0010:kasan_check_range+0xdf/0x190
        Call Trace:
         <TASK>
         get_desc+0xb0/0x1d0
         insn_get_seg_base+0x104/0x270
         insn_fetch_from_user+0x66/0x80
         fixup_umip_exception+0xb1/0x530
         exc_general_protection+0x181/0x210
         asm_exc_general_protection+0x22/0x30
        RIP: 0003:0x0
        Code: Unable to access opcode bytes at 0xffffffffffffffd6.
        RSP: 0003:0000000000000000 EFLAGS: 00000202
        RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00000000000001d0
        RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
        RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
        R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
        R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
         </TASK>
      
      Fixes: 9fd429c28073 ("x86/kasan: Map shadow for percpu pages on demand")
      Reported-by: syzbot+ffb4f000dc2872c93f62@syzkaller.appspotmail.com
      Suggested-by: default avatarAndrey Ryabinin <ryabinin.a.a@gmail.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: default avatarAndrey Ryabinin <ryabinin.a.a@gmail.com>
      Link: https://lkml.kernel.org/r/20221110203504.1985010-3-seanjc@google.com
      97650148
    • Sean Christopherson's avatar
      x86/mm: Recompute physical address for every page of per-CPU CEA mapping · 80d72a8f
      Sean Christopherson authored
      Recompute the physical address for each per-CPU page in the CPU entry
      area, a recent commit inadvertantly modified cea_map_percpu_pages() such
      that every PTE is mapped to the physical address of the first page.
      
      Fixes: 9fd429c28073 ("x86/kasan: Map shadow for percpu pages on demand")
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: default avatarAndrey Ryabinin <ryabinin.a.a@gmail.com>
      Link: https://lkml.kernel.org/r/20221110203504.1985010-2-seanjc@google.com
      80d72a8f
    • Peter Zijlstra's avatar
      x86/mm: Rename __change_page_attr_set_clr(.checkalias) · e996365e
      Peter Zijlstra authored
      Now that the checkalias functionality is taken by CPA_NO_CHECK_ALIAS
      rename the argument to better match is remaining purpose: primary,
      matching __change_page_attr().
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lkml.kernel.org/r/20221110125544.661001508%40infradead.org
      e996365e
    • Peter Zijlstra's avatar
      x86/mm: Inhibit _PAGE_NX changes from cpa_process_alias() · d5974166
      Peter Zijlstra authored
      There is a cludge in change_page_attr_set_clr() that inhibits
      propagating NX changes to the aliases (directmap and highmap) -- this
      is a cludge twofold:
      
       - it also inhibits the primary checks in __change_page_attr();
       - it hard depends on single bit changes.
      
      The introduction of set_memory_rox() triggered this last issue for
      clearing both _PAGE_RW and _PAGE_NX.
      
      Explicitly ignore _PAGE_NX in cpa_process_alias() instead.
      
      Fixes: b38994948567 ("x86/mm: Implement native set_memory_rox()")
      Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Debugged-by: default avatarDave Hansen <dave.hansen@intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lkml.kernel.org/r/20221110125544.594991716%40infradead.org
      d5974166
    • Peter Zijlstra's avatar
      x86/mm: Untangle __change_page_attr_set_clr(.checkalias) · ef9ab81a
      Peter Zijlstra authored
      The .checkalias argument to __change_page_attr_set_clr() is overloaded
      and serves two different purposes:
      
       - it inhibits the call to cpa_process_alias() -- as suggested by the
         name; however,
      
       - it also serves as 'primary' indicator for __change_page_attr()
         ( which in turn also serves as a recursion terminator for
           cpa_process_alias() ).
      
      Untangle these by extending the use of CPA_NO_CHECK_ALIAS to all
      callsites that currently use .checkalias=0 for this purpose.
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lkml.kernel.org/r/20221110125544.527267183%40infradead.org
      ef9ab81a
    • Peter Zijlstra's avatar
      x86/mm: Add a few comments · 5ceeee75
      Peter Zijlstra authored
      It's a shame to hide useful comments in Changelogs, add some to the
      code.
      
      Shamelessly stolen from commit:
      
        c40a56a7 ("x86/mm/init: Remove freed kernel image areas from alias mapping")
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lkml.kernel.org/r/20221110125544.460677011%40infradead.org
      5ceeee75
    • Kirill A. Shutemov's avatar
      x86/mm: Fix CR3_ADDR_MASK · 80d0969a
      Kirill A. Shutemov authored
      The mask must not include bits above physical address mask. These bits
      are reserved and can be used for other things. Bits 61 and 62 are used
      for Linear Address Masking.
      Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Reviewed-by: default avatarRick Edgecombe <rick.p.edgecombe@intel.com>
      Reviewed-by: default avatarAlexander Potapenko <glider@google.com>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Tested-by: default avatarAlexander Potapenko <glider@google.com>
      Link: https://lore.kernel.org/all/20221109165140.9137-2-kirill.shutemov%40linux.intel.com
      80d0969a