1. Jul 29, 2023
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2023-07-28-15-52' of... · 122e7943
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2023-07-28-15-52' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull hotfixes from Andrew Morton:
       "11 hotfixes. Five are cc:stable and the remainder address post-6.4
        issues or aren't considered serious enough to justify backporting"
      
      * tag 'mm-hotfixes-stable-2023-07-28-15-52' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        mm/memory-failure: fix hardware poison check in unpoison_memory()
        proc/vmcore: fix signedness bug in read_from_oldmem()
        mailmap: update remaining active codeaurora.org email addresses
        mm: lock VMA in dup_anon_vma() before setting ->anon_vma
        mm: fix memory ordering for mm_lock_seq and vm_lock_seq
        scripts/spelling.txt: remove 'thead' as a typo
        mm/pagewalk: fix EFI_PGT_DUMP of espfix area
        shmem: minor fixes to splice-read implementation
        tmpfs: fix Documentation of noswap and huge mount options
        Revert "um: Use swap() to make code cleaner"
        mm/damon/core-test: initialise context before test in damon_test_set_attrs()
      122e7943
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 20d3f241
      Linus Torvalds authored
      Pull thermal control fixes from Rafael Wysocki:
       "Constify thermal_zone_device_register() parameters, which was omitted
        by mistake, and fix a double free on thermal zone unregistration in
        the generic DT thermal driver (Ahmad Fatoum)"
      
      * tag 'thermal-6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: of: fix double-free on unregistration
        thermal: core: constify params in thermal_zone_device_register
      20d3f241
    • Linus Torvalds's avatar
      Merge tag 'pm-6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3632f421
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "Fix the arming of wakeup IRQs in the generic wakeup IRQ code
        (wakeirq), drop unused functions from it and fix up a driver using it
        and trying to work around the IRQ arming issue in a questionable way
        (Johan Hovold)"
      
      * tag 'pm-6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        serial: qcom-geni: drop bogus runtime pm state update
        PM: sleep: wakeirq: drop unused enable helpers
        PM: sleep: wakeirq: fix wake irq arming
      3632f421
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.5-rc4' of... · 2f4effd8
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - k10temp: Display negative temperatures for industrial processors
      
       - pmbus core: Fix deadlock, NULL pointer dereference, and chip enable
         detection
      
       - nct7802: Do not display PECI1 temperature if disabled
      
       - nct6775: Fix IN scaling factors and feature detection for
         NCT6798/6799
      
       - oxp-sensors: Fix race condition during device attribute creation
      
       - aquacomputer_d5next: Fix incorrect PWM value readout
      
      * tag 'hwmon-for-v6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (k10temp) Enable AMD3255 Proc to show negative temperature
        hwmon: (pmbus_core) Fix Deadlock in pmbus_regulator_get_status
        hwmon: (pmbus_core) Fix NULL pointer dereference
        hwmon: (pmbus_core) Fix pmbus_is_enabled()
        hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled
        hwmon: (nct6775) Fix IN scaling factors for 6798/6799
        hwmon: (oxp-sensors) Move tt_toggle attribute to dev_groups
        hwmon: (aquacomputer_d5next) Fix incorrect PWM value readout
        hwmon: (nct6775) Fix register for nct6799
      2f4effd8
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · c06f9091
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Several smaller driver fixes and a core RDMA CM regression fix:
      
         - Fix improperly accepting flags from userspace in mlx4
      
         - Add missing DMA barriers for irdma
      
         - Fix two kcsan warnings in irdma
      
         - Report the correct CQ op code to userspace in irdma
      
         - Report the correct MW bind error code for irdma
      
         - Load the destination address in RDMA CM to resolve a recent
           regression
      
         - Fix a QP regression in mthca
      
         - Remove a race processing completions in bnxt_re resulting in a
           crash
      
         - Fix driver unloading races with interrupts and tasklets in bnxt_re
      
         - Fix missing error unwind in rxe"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/irdma: Report correct WC error
        RDMA/irdma: Fix op_type reporting in CQEs
        RDMA/rxe: Fix an error handling path in rxe_bind_mw()
        RDMA/bnxt_re: Fix hang during driver unload
        RDMA/bnxt_re: Prevent handling any completions after qp destroy
        RDMA/mthca: Fix crash when polling CQ for shared QPs
        RDMA/core: Update CMA destination address on rdma_resolve_addr
        RDMA/irdma: Fix data race on CQP request done
        RDMA/irdma: Fix data race on CQP completion stats
        RDMA/irdma: Add missing read barriers
        RDMA/mlx4: Make check for invalid flags stricter
      c06f9091
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-v6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd · 2b17e90d
      Linus Torvalds authored
      Pull tpm fixes from Jarkko Sakkinen:
       "I picked up three small scale updates that I think would improve the
        quality of the release"
      
      * tag 'tpmdd-v6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        tpm_tis: Explicitly check for error code
        tpm: Switch i2c drivers back to use .probe()
        security: keys: perform capable check only on privileged operations
      2b17e90d
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · f837f0a3
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - A couple of SME updates for recent fixes (one of which went to
         stable): reverting the flushing of the SME hardware state along with
         the thread flushing and making sure we have the correct vector length
         before reallocating.
      
       - An ACPI/IORT fix to avoid skipping ID mappings whose "number of IDs"
         is 0 (the spec reports the number of IDs in the mapping range minus
         1).
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        ACPI/IORT: Remove erroneous id_count check in iort_node_get_rmr_info()
        arm64/sme: Set new vector length before reallocating
        arm64/fpsimd: Don't flush SME register hardware state along with thread
      f837f0a3
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.5a-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 81eef890
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
      
       - A fix for a performance problem in QubesOS, adding a way to drain the
         queue of grants experiencing delayed unmaps faster
      
       - A patch enabling the use of static event channels from user mode,
         which was omitted when introducing supporting static event channels
      
       - A fix for a problem where Xen related code didn't check properly for
         running in a Xen environment, resulting in a WARN splat
      
      * tag 'for-linus-6.5a-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen: speed up grant-table reclaim
        xen/evtchn: Introduce new IOCTL to bind static evtchn
        xenbus: check xen_domain in xenbus_probe_initcall
      81eef890
    • Alexander Steffen's avatar
      tpm_tis: Explicitly check for error code · 513253f8
      Alexander Steffen authored
      recv_data either returns the number of received bytes, or a negative value
      representing an error code. Adding the return value directly to the total
      number of received bytes therefore looks a little weird, since it might add
      a negative error code to a sum of bytes.
      
      The following check for size < expected usually makes the function return
      ETIME in that case, so it does not cause too many problems in practice. But
      to make the code look cleaner and because the caller might still be
      interested in the original error code, explicitly check for the presence of
      an error code and pass that through.
      
      Cc: stable@vger.kernel.org
      Fixes: cb535425
      
       ("[PATCH] tpm: spacing cleanups 2")
      Signed-off-by: default avatarAlexander Steffen <Alexander.Steffen@infineon.com>
      Reviewed-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
      Signed-off-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
      513253f8
    • Uwe Kleine-König's avatar
      tpm: Switch i2c drivers back to use .probe() · be6f48a7
      Uwe Kleine-König authored
      After commit b8a1a4cd ("i2c: Provide a temporary .probe_new()
      call-back type"), all drivers being converted to .probe_new() and then
      03c835f4
      
       ("i2c: Switch .probe() to not take an id parameter")
      convert back to (the new) .probe() to be able to eventually drop
      .probe_new() from struct i2c_driver.
      
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Reviewed-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
      Signed-off-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
      be6f48a7
    • Christian Göttsche's avatar
      security: keys: perform capable check only on privileged operations · 2d7f105e
      Christian Göttsche authored
      
      
      If the current task fails the check for the queried capability via
      `capable(CAP_SYS_ADMIN)` LSMs like SELinux generate a denial message.
      Issuing such denial messages unnecessarily can lead to a policy author
      granting more privileges to a subject than needed to silence them.
      
      Reorder CAP_SYS_ADMIN checks after the check whether the operation is
      actually privileged.
      
      Signed-off-by: default avatarChristian Göttsche <cgzones@googlemail.com>
      Reviewed-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
      Signed-off-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
      2d7f105e
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-6.5-rc4' of https://github.com/ceph/ceph-client · e62e26d3
      Linus Torvalds authored
      Pull ceph fixes from Ilya Dryomov:
       "A patch to reduce the potential for erroneous RBD exclusive lock
        blocklisting (fencing) with a couple of prerequisites and a fixup to
        prevent metrics from being sent to the MDS even just once after that
        has been disabled by the user. All marked for stable"
      
      * tag 'ceph-for-6.5-rc4' of https://github.com/ceph/ceph-client:
        rbd: retrieve and check lock owner twice before blocklisting
        rbd: harden get_lock_owner_info() a bit
        rbd: make get_lock_owner_info() return a single locker or NULL
        ceph: never send metrics if disable_send_metrics is set
      e62e26d3
    • Linus Torvalds's avatar
      Merge tag '9p-fixes-6.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · 28d79b74
      Linus Torvalds authored
      Pull 9p fixes from Eric Van Hensbergen:
       "Misc set of fixes for 9p.
      
        Most of these clean up warnings we've gotten out of compilation tools,
        but several of them were from inspection while hunting down a couple
        of regressions.
      
        The most important one is 75b39682 ("fs/9p: remove unnecessary and
        overrestrictive check") which caused a regression for some folks by
        restricting mmap in any case where writeback caches weren't enabled.
      
        Most of the other bugs caught via inspection were type mismatches"
      
      * tag '9p-fixes-6.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        fs/9p: Remove unused extern declaration
        9p: remove dead stores (variable set again without being read)
        9p: virtio: skip incrementing unused variable
        9p: virtio: make sure 'offs' is initialized in zc_request
        9p: virtio: fix unlikely null pointer deref in handle_rerror
        9p: fix ignored return value in v9fs_dir_release
        fs/9p: remove unnecessary invalidate_inode_pages2
        fs/9p: fix type mismatch in file cache mode helper
        fs/9p: fix typo in comparison logic for cache mode
        fs/9p: remove unnecessary and overrestrictive check
        fs/9p: Fix a datatype used with V9FS_DIRECT_IO
      28d79b74
    • Linus Torvalds's avatar
      Merge tag 'block-6.5-2023-07-28' of git://git.kernel.dk/linux · 818680d1
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A few fixes that should go into the current kernel release, mainly:
      
         - Set of fixes for dasd (Stefan)
      
         - Handle interruptible waits returning because of a signal for ublk
           (Ming)"
      
      * tag 'block-6.5-2023-07-28' of git://git.kernel.dk/linux:
        ublk: return -EINTR if breaking from waiting for existed users in DEL_DEV
        ublk: fail to recover device if queue setup is interrupted
        ublk: fail to start device if queue setup is interrupted
        block: Fix a source code comment in include/uapi/linux/blkzoned.h
        s390/dasd: print copy pair message only for the correct error
        s390/dasd: fix hanging device after request requeue
        s390/dasd: use correct number of retries for ERP requests
        s390/dasd: fix hanging device after quiesce/resume
      818680d1
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.5-2023-07-28' of git://git.kernel.dk/linux · 9c655058
      Linus Torvalds authored
      Pull io_uring fix from Jens Axboe:
       "Just a single tweak to a patch from last week, to avoid having idle
        cqring waits be attributed as iowait"
      
      * tag 'io_uring-6.5-2023-07-28' of git://git.kernel.dk/linux:
        io_uring: gate iowait schedule on having pending requests
      9c655058
    • Linus Torvalds's avatar
      Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd · 0299a13a
      Linus Torvalds authored
      Pull iommufd fixes from Jason Gunthorpe:
       "Two user triggerable problems:
      
         - Syzkaller found a way to trigger a WARN_ON and leak memory by
           racing destroy with other actions
      
         - There is still a bug in the "batch carry" stuff that gets invoked
           for complex cases with accesses and unmapping of huge pages. The
           test suite found this (triggers rarely)"
      
      * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd:
        iommufd: Set end correctly when doing batch carry
        iommufd: IOMMUFD_DESTROY should not increase the refcount
      0299a13a
    • Linus Torvalds's avatar
      Merge tag 'for-6.5/dm-fixes' of... · c75981a1
      Linus Torvalds authored
      Merge tag 'for-6.5/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
      
       - Fix double free on memory allocation failure in DM integrity target's
         integrity_recalc()
      
       - Fix locking in DM raid target's raid_ctr() and around call to
         md_stop()
      
       - Fix DM cache target's cleaner policy to always allow work to be
         queued for writeback; even if cache isn't idle.
      
      * tag 'for-6.5/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm cache policy smq: ensure IO doesn't prevent cleaner policy progress
        dm raid: protect md_stop() with 'reconfig_mutex'
        dm raid: clean up four equivalent goto tags in raid_ctr()
        dm raid: fix missing reconfig_mutex unlock in raid_ctr() error paths
        dm integrity: fix double free on memory allocation failure
      c75981a1
    • Linus Torvalds's avatar
      Merge tag 'sound-6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 6fb9f7f8
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of device-specific small fixes such as ASoC Realtek codec
        fixes for PM issues, ASoC nau8821 quirk additions, and usual HD- and
        USB-audio quirks"
      
      * tag 'sound-6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda/realtek: Support ASUS G713PV laptop
        ALSA: usb-audio: Update for native DSD support quirks
        ALSA: usb-audio: Add quirk for Microsoft Modern Wireless Headset
        ALSA: hda/relatek: Enable Mute LED on HP 250 G8
        ASoC: atmel: Fix the 8K sample parameter in I2SC master
        ASoC: rt711-sdca: fix for JD event handling in ClockStop Mode0
        ASoC: rt711: fix for JD event handling in ClockStop Mode0
        ASoC: rt722-sdca: fix for JD event handling in ClockStop Mode0
        ASoC: rt712-sdca: fix for JD event handling in ClockStop Mode0
        ASoc: codecs: ES8316: Fix DMIC config
        ASoC: rt5682-sdw: fix for JD event handling in ClockStop Mode0
        ASoC: wm8904: Fill the cache for WM8904_ADC_TEST_0 register
        ASoC: nau8821: Add DMI quirk mechanism for active-high jack-detect
        ASoC: da7219: Check for failure reading AAD IRQ events
        ASoC: da7219: Flush pending AAD IRQ when suspending
        ALSA: seq: remove redundant unsigned comparison to zero
        ASoC: fsl_spdif: Silence output on stop
      6fb9f7f8
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2023-07-28' of git://anongit.freedesktop.org/drm/drm · 17bf3df9
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular scheduled fixes, msm and amdgpu leading the way, with some
        i915 and a single misc fbdev, all seems fine.
      
        fbdev:
         - remove unused function
      
        amdgpu:
         - gfxhub partition fix
         - Fix error handling in psp_sw_init()
         - SMU13 fix
         - DCN 3.1 fix
         - DCN 3.2 fix
         - Fix for display PHY programming sequence
         - DP MST error handling fix
         - GFX 9.4.3 fix
      
        amdkfd:
         - GFX11 trap handling fix
      
        i915:
         - Use shmem for dpt objects
         - Fix an error handling path in igt_write_huge()
      
        msm:
         - display:
            - Fix to correct the UBWC programming for decoder version 4.3 seen
              on SM8550
            - Add the missing flush and fetch bits for DMA4 and DMA5 SSPPs.
            - Fix to drop the unused dpu_core_perf_data_bus_id enum from the
              code
            - Drop the unused dsi_phy_14nm_17mA_regulators from QCM 2290 DSI
              cfg.
         - gpu:
            - Fix warn splat for newer devices without revn
            - Remove name/revn for a690.. we shouldn't be populating these for
              newer devices, for consistency, but it slipped through review
            - Fix a6xx gpu snapshot BINDLESS_DATA size (was listed in bytes
              instead of dwords, causing AHB faults on a6xx gen4/a660-family)
            - Disallow submit with fence id 0"
      
      * tag 'drm-fixes-2023-07-28' of git://anongit.freedesktop.org/drm/drm: (22 commits)
        drm/msm: Disallow submit with fence id 0
        drm/amdgpu: Restore HQD persistent state register
        drm/amd/display: Unlock on error path in dm_handle_mst_sideband_msg_ready_event()
        drm/amd/display: Exit idle optimizations before attempt to access PHY
        drm/amd/display: Don't apply FIFO resync W/A if rdivider = 0
        drm/amd/display: Guard DCN31 PHYD32CLK logic against chip family
        drm/amd/smu: use AverageGfxclkFrequency* to replace previous GFX Curr Clock
        drm/amd: Fix an error handling mistake in psp_sw_init()
        drm/amdgpu: Fix infinite loop in gfxhub_v1_2_xcc_gart_enable (v2)
        drm/amdkfd: fix trap handling work around for debugging
        drm/fb-helper: Remove unused inline function drm_fb_helper_defio_init()
        drm/i915: Fix an error handling path in igt_write_huge()
        drm/i915/dpt: Use shmem for dpt objects
        drm/msm: Fix hw_fence error path cleanup
        drm/msm: Fix IS_ERR_OR_NULL() vs NULL check in a5xx_submit_in_rb()
        drm/msm/adreno: Fix snapshot BINDLESS_DATA size
        drm/msm/a690: Remove revn and name
        drm/msm/adreno: Fix warn splat for devices without revn
        drm/msm/dsi: Drop unused regulators from QCM2290 14nm DSI PHY config
        drm/msm/dpu: drop enum dpu_core_perf_data_bus_id
        ...
      17bf3df9
    • Linus Torvalds's avatar
      Merge tag 'cxl-fixes-6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · f24767ca
      Linus Torvalds authored
      Pull cxl fixes from Vishal Verma:
      
       - Update MAINTAINERS for cxl
      
       - A few static analysis fixes
      
       - Fix a Kconfig dependency for CONFIG_FW_LOADER
      
      * tag 'cxl-fixes-6.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl:
        tools/testing/cxl: Remove unused SZ_512G macro
        cxl/acpi: Return 'rc' instead of '0' in cxl_parse_cfmws()
        cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()
        cxl: Update MAINTAINERS
        cxl/mem: Fix a double shift bug
        cxl: fix CONFIG_FW_LOADER dependency
      f24767ca
    • Mike Rapoport (IBM)'s avatar
      Revert "mm,memblock: reset memblock.reserved to system init state to prevent UAF" · c442a957
      Mike Rapoport (IBM) authored
      This reverts commit 9e46e4dc.
      
      kbuild reports a warning in memblock_remove_region() because of a false
      positive caused by partial reset of the memblock state.
      
      Doing the full reset will remove the false positives, but will allow
      late use of memblock_free() to go unnoticed, so it is better to revert
      the offending commit.
      
         WARNING: CPU: 0 PID: 1 at mm/memblock.c:352 memblock_remove_region (kbuild/src/x86_64/mm/memblock.c:352 (discriminator 1))
         Modules linked in:
         CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.5.0-rc3-00001-g9e46e4dc
      
       #2
         RIP: 0010:memblock_remove_region (kbuild/src/x86_64/mm/memblock.c:352 (discriminator 1))
         Call Trace:
           memblock_discard (kbuild/src/x86_64/mm/memblock.c:383)
           page_alloc_init_late (kbuild/src/x86_64/include/linux/find.h:208 kbuild/src/x86_64/include/linux/nodemask.h:266 kbuild/src/x86_64/mm/mm_init.c:2405)
           kernel_init_freeable (kbuild/src/x86_64/init/main.c:1325 kbuild/src/x86_64/init/main.c:1546)
           kernel_init (kbuild/src/x86_64/init/main.c:1439)
           ret_from_fork (kbuild/src/x86_64/arch/x86/kernel/process.c:145)
           ret_from_fork_asm (kbuild/src/x86_64/arch/x86/entry/entry_64.S:298)
      
      Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Closes: https://lore.kernel.org/oe-lkp/202307271656.447aa17e-oliver.sang@intel.com
      
      
      Signed-off-by: default avatar"Mike Rapoport (IBM)" <rppt@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c442a957
    • Jann Horn's avatar
      mm/mempolicy: Take VMA lock before replacing policy · 6c21e066
      Jann Horn authored
      
      
      mbind() calls down into vma_replace_policy() without taking the per-VMA
      locks, replaces the VMA's vma->vm_policy pointer, and frees the old
      policy.  That's bad; a concurrent page fault might still be using the
      old policy (in vma_alloc_folio()), resulting in use-after-free.
      
      Normally this will manifest as a use-after-free read first, but it can
      result in memory corruption, including because vma_alloc_folio() can
      call mpol_cond_put() on the freed policy, which conditionally changes
      the policy's refcount member.
      
      This bug is specific to CONFIG_NUMA, but it does also affect non-NUMA
      systems as long as the kernel was built with CONFIG_NUMA.
      
      Signed-off-by: default avatarJann Horn <jannh@google.com>
      Reviewed-by: default avatarSuren Baghdasaryan <surenb@google.com>
      Fixes: 5e31275c
      
       ("mm: add per-VMA lock and helper functions to control it")
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6c21e066
  2. Jul 28, 2023