Skip to content
Snippets Groups Projects
  1. Nov 04, 2024
  2. Nov 03, 2024
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2024-11-03-10-50' of... · a8cc7432
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2024-11-03-10-50' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc fixes from Andrew Morton:
       "17 hotfixes.  9 are cc:stable.  13 are MM and 4 are non-MM.
      
        The usual collection of singletons - please see the changelogs"
      
      * tag 'mm-hotfixes-stable-2024-11-03-10-50' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        mm: multi-gen LRU: use {ptep,pmdp}_clear_young_notify()
        mm: multi-gen LRU: remove MM_LEAF_OLD and MM_NONLEAF_TOTAL stats
        mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned sizes
        mm: shrinker: avoid memleak in alloc_shrinker_info
        .mailmap: update e-mail address for Eugen Hristev
        vmscan,migrate: fix page count imbalance on node stats when demoting pages
        mailmap: update Jarkko's email addresses
        mm: allow set/clear page_type again
        nilfs2: fix potential deadlock with newly created symlinks
        Squashfs: fix variable overflow in squashfs_readpage_block
        kasan: remove vmalloc_percpu test
        tools/mm: -Werror fixes in page-types/slabinfo
        mm, swap: avoid over reclaim of full clusters
        mm: fix PSWPIN counter for large folios swap-in
        mm: avoid VM_BUG_ON when try to map an anon large folio to zero page.
        mm/codetag: fix null pointer check logic for ref and tag
        mm/gup: stop leaking pinned pages in low memory conditions
      a8cc7432
    • Linus Torvalds's avatar
      Merge tag 'phy-fixes-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy · d5aaa0bc
      Linus Torvalds authored
      Pull phy fixes from Vinod Koul:
      
       - Qualcomm QMP driver fixes for null deref on suspend, bogus supplies
         fix and reset entries fix
      
       - BCM usb driver init array fix
      
       - cadence array offset fix
      
       - starfive link configuration fix
      
       - config dependency fix for rockchip driver
      
       - freescale reset signal fix before pll lock
      
       - tegra driver fix for error pointer check
      
      * tag 'phy-fixes-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy:
        phy: tegra: xusb: Add error pointer check in xusb.c
        dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Fix X1E80100 resets entries
        phy: freescale: imx8m-pcie: Do CMN_RST just before PHY PLL lock check
        phy: phy-rockchip-samsung-hdptx: Depend on CONFIG_COMMON_CLK
        phy: ti: phy-j721e-wiz: fix usxgmii configuration
        phy: starfive: jh7110-usb: Fix link configuration to controller
        phy: qcom: qmp-pcie: drop bogus x1e80100 qref supplies
        phy: qcom: qmp-combo: move driver data initialisation earlier
        phy: qcom: qmp-usbc: fix NULL-deref on runtime suspend
        phy: qcom: qmp-usb-legacy: fix NULL-deref on runtime suspend
        phy: qcom: qmp-usb: fix NULL-deref on runtime suspend
        dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: add missing x1e80100 pipediv2 clocks
        phy: usb: disable COMMONONN for dual mode
        phy: cadence: Sierra: Fix offset of DEQ open eye algorithm control register
        phy: usb: Fix missing elements in BCM4908 USB init array
      d5aaa0bc
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · e8529dcb
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
      
       - TI driver fix to set EOP for cyclic BCDMA transfers
      
       - sh rz-dmac driver fix for handling config with zero address
      
      * tag 'dmaengine-fix-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine:
        dmaengine: ti: k3-udma: Set EOP for all TRs in cyclic BCDMA transfer
        dmaengine: sh: rz-dmac: handle configs where one address is zero
      e8529dcb
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.12-rc6' of... · 886b7e80
      Linus Torvalds authored
      Merge tag 'driver-core-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core revert from Greg KH:
       "Here is a single driver core revert for 6.12-rc6. It reverts a change
        that came in -rc1 that was supposed to resolve a reported problem, but
        caused another one, so revert it for now so that we can get this all
        worked out properly in 6.13.
      
        The revert has been in linux-next all week with no reported issues"
      
      * tag 'driver-core-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        Revert "driver core: Fix uevent_show() vs driver detach race"
      886b7e80
    • Linus Torvalds's avatar
      Merge tag 'usb-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · be5bfa13
      Linus Torvalds authored
      Pull USB / Thunderbolt fixes from Greg KH:
       "Here are some small USB and Thunderbolt driver fixes for 6.12-rc6 that
        have been sitting in my tree this week. Included in here are the
        following:
      
         - thunderbolt driver fixes for reported issues
      
         - USB typec driver fixes
      
         - xhci driver fixes for reported problems
      
         - dwc2 driver revert for a broken change
      
         - usb phy driver fix
      
         - usbip tool fix
      
        All of these have been in linux-next this week with no reported
        issues"
      
      * tag 'usb-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: tcpm: restrict SNK_WAIT_CAPABILITIES_TIMEOUT transitions to non self-powered devices
        usb: phy: Fix API devm_usb_put_phy() can not release the phy
        usb: typec: use cleanup facility for 'altmodes_node'
        usb: typec: fix unreleased fwnode_handle in typec_port_register_altmodes()
        usb: typec: qcom-pmic-typec: fix missing fwnode removal in error path
        usb: typec: qcom-pmic-typec: use fwnode_handle_put() to release fwnodes
        usb: acpi: fix boot hang due to early incorrect 'tunneled' USB3 device links
        Revert "usb: dwc2: Skip clock gating on Broadcom SoCs"
        xhci: Fix Link TRB DMA in command ring stopped completion event
        xhci: Use pm_runtime_get to prevent RPM on unsupported systems
        usbip: tools: Fix detach_port() invalid port error path
        thunderbolt: Honor TMU requirements in the domain when setting TMU mode
        thunderbolt: Fix KASAN reported stack out-of-bounds read in tb_retimer_scan()
      be5bfa13
    • Yu Zhao's avatar
      mm: multi-gen LRU: use {ptep,pmdp}_clear_young_notify() · 1d4832be
      Yu Zhao authored
      When the MM_WALK capability is enabled, memory that is mostly accessed by
      a VM appears younger than it really is, therefore this memory will be less
      likely to be evicted.  Therefore, the presence of a running VM can
      significantly increase swap-outs for non-VM memory, regressing the
      performance for the rest of the system.
      
      Fix this regression by always calling {ptep,pmdp}_clear_young_notify()
      whenever we clear the young bits on PMDs/PTEs.
      
      [jthoughton@google.com: fix link-time error]
      Link: https://lkml.kernel.org/r/20241019012940.3656292-3-jthoughton@google.com
      
      
      Fixes: bd74fdae ("mm: multi-gen LRU: support page table walks")
      Signed-off-by: default avatarYu Zhao <yuzhao@google.com>
      Signed-off-by: default avatarJames Houghton <jthoughton@google.com>
      Reported-by: default avatarDavid Stevens <stevensd@google.com>
      Cc: Axel Rasmussen <axelrasmussen@google.com>
      Cc: David Matlack <dmatlack@google.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Oliver Upton <oliver.upton@linux.dev>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Sean Christopherson <seanjc@google.com>
      Cc: Wei Xu <weixugc@google.com>
      Cc: <stable@vger.kernel.org>
      Cc: kernel test robot <lkp@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      1d4832be
    • Yu Zhao's avatar
      mm: multi-gen LRU: remove MM_LEAF_OLD and MM_NONLEAF_TOTAL stats · ddd6d8e9
      Yu Zhao authored
      Patch series "mm: multi-gen LRU: Have secondary MMUs participate in
      MM_WALK".
      
      Today, the MM_WALK capability causes MGLRU to clear the young bit from
      PMDs and PTEs during the page table walk before eviction, but MGLRU does
      not call the clear_young() MMU notifier in this case.  By not calling this
      notifier, the MM walk takes less time/CPU, but it causes pages that are
      accessed mostly through KVM / secondary MMUs to appear younger than they
      should be.
      
      We do call the clear_young() notifier today, but only when attempting to
      evict the page, so we end up clearing young/accessed information less
      frequently for secondary MMUs than for mm PTEs, and therefore they appear
      younger and are less likely to be evicted.  Therefore, memory that is
      *not* being accessed mostly by KVM will be evicted *more* frequently,
      worsening performance.
      
      ChromeOS observed a tab-open latency regression when enabling MGLRU with a
      setup that involved running a VM:
      
      		Tab-open latency histogram (ms)
      Version		p50	mean	p95	p99	max
      base		1315	1198	2347	3454	10319
      mglru		2559	1311	7399	12060	43758
      fix		1119	926	2470	4211	6947
      
      This series replaces the final non-selftest patchs from this series[1],
      which introduced a similar change (and a new MMU notifier) with KVM
      optimizations.  I'll send a separate series (to Sean and Paolo) for the
      KVM optimizations.
      
      This series also makes proactive reclaim with MGLRU possible for KVM
      memory.  I have verified that this functions correctly with the selftest
      from [1], but given that that test is a KVM selftest, I'll send it with
      the rest of the KVM optimizations later.  Andrew, let me know if you'd
      like to take the test now anyway.
      
      [1]: https://lore.kernel.org/linux-mm/20240926013506.860253-18-jthoughton@google.com/
      
      
      This patch (of 2):
      
      The removed stats, MM_LEAF_OLD and MM_NONLEAF_TOTAL, are not very helpful
      and become more complicated to properly compute when adding
      test/clear_young() notifiers in MGLRU's mm walk.
      
      Link: https://lkml.kernel.org/r/20241019012940.3656292-1-jthoughton@google.com
      Link: https://lkml.kernel.org/r/20241019012940.3656292-2-jthoughton@google.com
      
      
      Fixes: bd74fdae ("mm: multi-gen LRU: support page table walks")
      Signed-off-by: default avatarYu Zhao <yuzhao@google.com>
      Signed-off-by: default avatarJames Houghton <jthoughton@google.com>
      Cc: Axel Rasmussen <axelrasmussen@google.com>
      Cc: David Matlack <dmatlack@google.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: David Stevens <stevensd@google.com>
      Cc: Oliver Upton <oliver.upton@linux.dev>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Sean Christopherson <seanjc@google.com>
      Cc: Wei Xu <weixugc@google.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      ddd6d8e9
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 32cfb3c4
      Linus Torvalds authored
      Pull misc driver fixes from Greg KH:
       "Here are some small char/misc/iio fixes for 6.12-rc6 that resolve
        some reported issues. Included in here are the following:
      
         - small IIO driver fixes for many reported issues
      
         - mei driver fix for a suddenly much reported issue for an "old"
           issue.
      
         - MAINTAINERS update for a developer who has moved companies and
           forgot to update their old entry.
      
        All of these have been in linux-next this week with no reported
        issues"
      
      * tag 'char-misc-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        mei: use kvmalloc for read buffer
        MAINTAINERS: add netup_unidvb maintainer
        iio: dac: Kconfig: Fix build error for ltc2664
        iio: adc: ad7124: fix division by zero in ad7124_set_channel_odr()
        staging: iio: frequency: ad9832: fix division by zero in ad9832_calc_freqreg()
        docs: iio: ad7380: fix supply for ad7380-4
        iio: adc: ad7380: fix supplies for ad7380-4
        iio: adc: ad7380: add missing supplies
        iio: adc: ad7380: use devm_regulator_get_enable_read_voltage()
        dt-bindings: iio: adc: ad7380: fix ad7380-4 reference supply
        iio: light: veml6030: fix microlux value calculation
        iio: gts-helper: Fix memory leaks for the error path of iio_gts_build_avail_scale_table()
        iio: gts-helper: Fix memory leaks in iio_gts_build_avail_scale_table()
      32cfb3c4
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 295ba650
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
      
       - a fix for regression in input core introduced in 6.11 preventing
         re-registering input handlers
      
       - a fix for adp5588-keys driver tyring to disable interrupt 0 at
         suspend when devices is used without interrupt
      
       - a fix for edt-ft5x06 to stop leaking regmap structure when probing
         fails and to make sure it is not released too early on removal.
      
      * tag 'input-for-v6.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: fix regression when re-registering input handlers
        Input: adp5588-keys - do not try to disable interrupt 0
        Input: edt-ft5x06 - fix regmap leak when probe fails
      295ba650
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v6.12-2' of... · a33ab3f9
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v6.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Fix a memory leak in modpost
      
       - Resolve build issues when cross-compiling RPM and Debian packages
      
       - Fix another regression in Kconfig
      
       - Fix incorrect MODULE_ALIAS() output in modpost
      
      * tag 'kbuild-fixes-v6.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        modpost: fix input MODULE_DEVICE_TABLE() built for 64-bit on 32-bit host
        modpost: fix acpi MODULE_DEVICE_TABLE built with mismatched endianness
        kconfig: show sub-menu entries even if the prompt is hidden
        kbuild: deb-pkg: add pkg.linux-upstream.nokerneldbg build profile
        kbuild: deb-pkg: add pkg.linux-upstream.nokernelheaders build profile
        kbuild: rpm-pkg: disable kernel-devel package when cross-compiling
        sumversion: Fix a memory leak in get_src_version()
      a33ab3f9
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b9021de3
      Linus Torvalds authored
      Pull x86 fix from Thomas Gleixner:
       "A trivial compile test fix for x86:
      
        When CONFIG_AMD_NB is not set a COMPILE_TEST of an AMD specific driver
        fails due to a missing inline stub. Add the stub to cure it"
      
      * tag 'x86-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/amd_nb: Fix compile-testing without CONFIG_AMD_NB
      b9021de3
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b019b4a6
      Linus Torvalds authored
      Pull timer fix from Thomas Gleixner:
       "A single fix for posix CPU timers.
      
        When a thread is cloned, the posix CPU timers are not inherited.
      
        If the parent has a CPU timer armed the corresponding tick dependency
        in the tasks tick_dep_mask is set and copied to the new thread, which
        means the new thread and all decendants will prevent the system to go
        into full NOHZ operation.
      
        Clear the tick dependency mask in copy_process() to fix this"
      
      * tag 'timers-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        posix-cpu-timers: Clear TICK_DEP_BIT_POSIX_TIMER on clone
      b019b4a6
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 33e83ffe
      Linus Torvalds authored
      Pull scheduler fixes from Thomas Gleixner:
      
       - Plug a race between pick_next_task_fair() and try_to_wake_up() where
         both try to write to the same task, even though both paths hold a
         runqueue lock, but obviously from different runqueues.
      
         The problem is that the store to task::on_rq in __block_task() is
         visible to try_to_wake_up() which assumes that the task is not
         queued. Both sides then operate on the same task.
      
         Cure it by rearranging __block_task() so the the store to task::on_rq
         is the last operation on the task.
      
       - Prevent a potential NULL pointer dereference in task_numa_work()
      
         task_numa_work() iterates the VMAs of a process. A concurrent unmap
         of the address space can result in a NULL pointer return from
         vma_next() which is unchecked.
      
         Add the missing NULL pointer check to prevent this.
      
       - Operate on the correct scheduler policy in task_should_scx()
      
         task_should_scx() returns true when a task should be handled by sched
         EXT. It checks the tasks scheduling policy.
      
         This fails when the check is done before a policy has been set.
      
         Cure it by handing the policy into task_should_scx() so it operates
         on the requested value.
      
       - Add the missing handling of sched EXT in the delayed dequeue
         mechanism. This was simply forgotten.
      
      * tag 'sched-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/ext: Fix scx vs sched_delayed
        sched: Pass correct scheduling policy to __setscheduler_class
        sched/numa: Fix the potential null pointer dereference in task_numa_work()
        sched: Fix pick_next_task_fair() vs try_to_wake_up() race
      33e83ffe
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 68f05b25
      Linus Torvalds authored
      Pull perf fix from Thomas Gleixner:
       "perf_event_clear_cpumask() uses list_for_each_entry_rcu() without
        being in a RCU read side critical section, which triggers a
        'suspicious RCU usage' warning.
      
        It turns out that the list walk does not be RCU protected because the
        write side lock is held in this context.
      
        Change it to a regular list walk"
      
      * tag 'perf-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf: Fix missing RCU reader protection in perf_event_clear_cpumask()
      68f05b25
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8f0b844a
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
      
       - Fix an off-by-one error in the failure path of msi_domain_alloc(),
         which causes the cleanup loop to terminate early and leaking the
         first allocated interrupt.
      
       - Handle a corner case in GIC-V4 versus a lazily mapped Virtual
         Processing Element (VPE). If the VPE has not been mapped because the
         guest has not yet emitted a mapping command, then the set_affinity()
         callback returns an error code, which causes the vCPU management to
         fail.
      
         Return success in this case without touching the hardware. This will
         be done later when the guest issues the mapping command.
      
      * tag 'irq-urgent-2024-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic-v4: Correctly deal with set_affinity on lazily-mapped VPEs
        genirq/msi: Fix off-by-one error in msi_domain_alloc()
      8f0b844a
    • Masahiro Yamada's avatar
      modpost: fix input MODULE_DEVICE_TABLE() built for 64-bit on 32-bit host · 77dc55a9
      Masahiro Yamada authored
      
      When building a 64-bit kernel on a 32-bit build host, incorrect
      input MODULE_ALIAS() entries may be generated.
      
      For example, when compiling a 64-bit kernel with CONFIG_INPUT_MOUSEDEV=m
      on a 64-bit build machine, you will get the correct output:
      
        $ grep MODULE_ALIAS drivers/input/mousedev.mod.c
        MODULE_ALIAS("input:b*v*p*e*-e*1,*2,*k*110,*r*0,*1,*a*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*2,*k*r*8,*a*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*3,*k*14A,*r*a*0,*1,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*3,*k*145,*r*a*0,*1,*18,*1C,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*3,*k*110,*r*a*0,*1,*m*l*s*f*w*");
      
      However, building the same kernel on a 32-bit machine results in
      incorrect output:
      
        $ grep MODULE_ALIAS drivers/input/mousedev.mod.c
        MODULE_ALIAS("input:b*v*p*e*-e*1,*2,*k*110,*130,*r*0,*1,*a*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*2,*k*r*8,*a*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*3,*k*14A,*16A,*r*a*0,*1,*20,*21,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*3,*k*145,*165,*r*a*0,*1,*18,*1C,*20,*21,*38,*3C,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*3,*k*110,*130,*r*a*0,*1,*20,*21,*m*l*s*f*w*");
      
      A similar issue occurs with CONFIG_INPUT_JOYDEV=m. On a 64-bit build
      machine, the output is:
      
        $ grep MODULE_ALIAS drivers/input/joydev.mod.c
        MODULE_ALIAS("input:b*v*p*e*-e*3,*k*r*a*0,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*3,*k*r*a*2,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*3,*k*r*a*8,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*3,*k*r*a*6,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*k*120,*r*a*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*k*130,*r*a*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*k*2C0,*r*a*m*l*s*f*w*");
      
      However, on a 32-bit machine, the output is incorrect:
      
        $ grep MODULE_ALIAS drivers/input/joydev.mod.c
        MODULE_ALIAS("input:b*v*p*e*-e*3,*k*r*a*0,*20,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*3,*k*r*a*2,*22,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*3,*k*r*a*8,*28,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*3,*k*r*a*6,*26,*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*k*11F,*13F,*r*a*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*k*11F,*13F,*r*a*m*l*s*f*w*");
        MODULE_ALIAS("input:b*v*p*e*-e*1,*k*2C0,*2E0,*r*a*m*l*s*f*w*");
      
      When building a 64-bit kernel, BITS_PER_LONG is defined as 64. However,
      on a 32-bit build machine, the constant 1L is a signed 32-bit value.
      Left-shifting it beyond 32 bits causes wraparound, and shifting by 31
      or 63 bits makes it a negative value.
      
      The fix in commit e0e92632 ("[PATCH] PATCH: 1 line 2.6.18 bugfix:
      modpost-64bit-fix.patch") is incorrect; it only addresses cases where
      a 64-bit kernel is built on a 64-bit build machine, overlooking cases
      on a 32-bit build machine.
      
      Using 1ULL ensures a 64-bit width on both 32-bit and 64-bit machines,
      avoiding the wraparound issue.
      
      Fixes: e0e92632 ("[PATCH] PATCH: 1 line 2.6.18 bugfix: modpost-64bit-fix.patch")
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      77dc55a9
    • Masahiro Yamada's avatar
      modpost: fix acpi MODULE_DEVICE_TABLE built with mismatched endianness · 2e766a1f
      Masahiro Yamada authored
      
      When CONFIG_SATA_AHCI_PLATFORM=m, modpost outputs incorect acpi
      MODULE_ALIAS() if the endianness of the target and the build machine
      do not match.
      
      When the endianness of the target kernel and the build machine match,
      the output is correct:
      
        $ grep 'MODULE_ALIAS("acpi' drivers/ata/ahci_platform.mod.c
        MODULE_ALIAS("acpi*:APMC0D33:*");
        MODULE_ALIAS("acpi*:010601:*");
      
      However, when building a little-endian kernel on a big-endian machine
      (or vice versa), the output is incorrect:
      
        $ grep 'MODULE_ALIAS("acpi' drivers/ata/ahci_platform.mod.c
        MODULE_ALIAS("acpi*:APMC0D33:*");
        MODULE_ALIAS("acpi*:0601??:*");
      
      The 'cls' and 'cls_msk' fields are 32-bit.
      
      DEF_FIELD() must be used instead of DEF_FIELD_ADDR() to correctly handle
      endianness of these 32-bit fields.
      
      The check 'if (cls)' was unnecessary; it never became NULL, as it was
      the pointer to 'symval' plus the offset to the 'cls' field.
      
      Fixes: 26095a01 ("ACPI / scan: Add support for ACPI _CLS device matching")
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      2e766a1f
    • Dmitry Torokhov's avatar
      Input: fix regression when re-registering input handlers · 071b24b5
      Dmitry Torokhov authored
      
      Commit d469647b ("Input: simplify event handling logic") introduced
      code that would set handler->events() method to either
      input_handler_events_filter() or input_handler_events_default() or
      input_handler_events_null(), depending on the kind of input handler
      (a filter or a regular one) we are dealing with. Unfortunately this
      breaks cases when we try to re-register the same filter (as is the case
      with sysrq handler): after initial registration the handler will have 2
      event handling methods defined, and will run afoul of the check in
      input_handler_check_methods():
      
      	input: input_handler_check_methods: only one event processing method can be defined (sysrq)
      	sysrq: Failed to register input handler, error -22
      
      Fix this by adding handle_events() method to input_handle structure and
      setting it up when registering a new input handle according to event
      handling methods defined in associated input_handler structure, thus
      avoiding modifying the input_handler structure.
      
      Reported-by: default avatar"Ned T. Crigler" <crigler@gmail.com>
      Reported-by: default avatarChristian Heusel <christian@heusel.eu>
      Tested-by: default avatar"Ned T. Crigler" <crigler@gmail.com>
      Tested-by: default avatarPeter Seiderer <ps.report@gmx.net>
      Fixes: d469647b ("Input: simplify event handling logic")
      Link: https://lore.kernel.org/r/Zx2iQp6csn42PJA7@xavtug
      
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      071b24b5
  3. Nov 02, 2024
    • Linus Torvalds's avatar
      Merge tag 'nfsd-6.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · 3e5e6c99
      Linus Torvalds authored
      Pull nfsd fixes from Chuck Lever:
      
       - Fix two async COPY bugs found during NFS bake-a-thon
      
       - Fix an svcrdma memory leak
      
      * tag 'nfsd-6.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
        rpcrdma: Always release the rpcrdma_device's xa_array
        NFSD: Never decrement pending_async_copies on error
        NFSD: Initialize struct nfsd4_copy earlier
      3e5e6c99
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.12-fixes-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · f6a7b4ec
      Linus Torvalds authored
      Pull xfs fixes from Carlos Maiolino:
      
       - fix a sysbot reported crash on filestreams
      
       - Reduce cpu time spent searching for extents in a very fragmented FS
      
       - Check for delayed allocations before setting extsize
      
      * tag 'xfs-6.12-fixes-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: streamline xfs_filestream_pick_ag
        xfs: fix finding a last resort AG in xfs_filestream_pick_ag
        xfs: Reduce unnecessary searches when searching for the best extents
        xfs: Check for delayed allocations before setting extsize
      f6a7b4ec
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-fixes-6.12-rc6' of... · 11066801
      Linus Torvalds authored
      Merge tag 'linux_kselftest-fixes-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest fixes from Shuah Khan:
      
       - fix syntax error in frequency calculation arithmetic expression in
         intel_pstate run.sh
      
       - add missing cpupower dependency check intel_pstate run.sh
      
       - fix idmap_mount_tree_invalid test failure due to incorrect argument
      
       - fix watchdog-test run leaving the watchdog timer enabled causing
         system reboot. With this fix, the test disables the watchdog timer
         when it gets terminated with SIGTERM, SIGKILL, and SIGQUIT in
         addition to SIGINT
      
      * tag 'linux_kselftest-fixes-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/watchdog-test: Fix system accidentally reset after watchdog-test
        selftests/intel_pstate: check if cpupower is installed
        selftests/intel_pstate: fix operand expected error
        selftests/mount_setattr: fix idmap_mount_tree_invalid failed to run
      11066801
    • Linus Torvalds's avatar
      Merge tag 'rust-fixes-6.12-3' of https://github.com/Rust-for-Linux/linux · f7292c09
      Linus Torvalds authored
      Pull rust fixes from Miguel Ojeda:
       "Toolchain and infrastructure:
      
         - Avoid build errors with old 'rustc's without LLVM patch version
           (important since it impacts people that do not even enable Rust)
      
         - Update LLVM version for 'HAVE_CFI_ICALL_NORMALIZE_INTEGERS' in
           'depends on' condition (the fix was eventually backported rather
           than land in LLVM 19)"
      
      * tag 'rust-fixes-6.12-3' of https://github.com/Rust-for-Linux/linux:
        cfi: tweak llvm version for HAVE_CFI_ICALL_NORMALIZE_INTEGERS
        kbuild: rust: avoid errors with old `rustc`s without LLVM patch version
      f7292c09
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.12-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · 05b92660
      Linus Torvalds authored
      Pull pci fix from Bjorn Helgaas:
      
       - Enable device-specific ACS-like functionality even if the device
         doesn't advertise an ACS capability, which got broken when adding
         fancy ACS kernel parameter (Jason Gunthorpe)
      
      * tag 'pci-v6.12-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
        PCI: Fix pci_enable_acs() support for the ACS quirks
      05b92660
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2024-11-02' of https://gitlab.freedesktop.org/drm/kernel · 269ce3bd
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular fixes pull, nothing too out of the ordinary, the mediatek
        fixes came in a batch that I might have preferred a bit earlier but
        all seem fine, otherwise regular xe/amdgpu and a few misc ones.
      
        xe:
         - Fix missing HPD interrupt enabling, bringing one PM refactor with it
         - Workaround LNL GGTT invalidation not being visible to GuC
         - Avoid getting jobs stuck without a protecting timeout
      
        ivpu:
         - Fix firewall IRQ handling
      
        panthor:
         - Fix firmware initialization wrt page sizes
         - Fix handling and reporting of dead job groups
      
        sched:
         - Guarantee forward progress via WC_MEM_RECLAIM
      
        tests:
         - Fix memory leak in drm_display_mode_from_cea_vic()
      
        amdgpu:
         - DCN 3.5 fix
         - Vangogh SMU KASAN fix
         - SMU 13 profile reporting fix
      
        mediatek:
         - Fix degradation problem of alpha blending
         - Fix color format MACROs in OVL
         - Fix get efuse issue for MT8188 DPTX
         - Fix potential NULL dereference in mtk_crtc_destroy()
         - Correct dpi power-domains property
         - Add split subschema property constraints"
      
      * tag 'drm-fixes-2024-11-02' of https://gitlab.freedesktop.org/drm/kernel: (27 commits)
        drm/xe: Don't short circuit TDR on jobs not started
        drm/xe: Add mmio read before GGTT invalidate
        drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic()
        drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic()
        drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic()
        drm/panthor: Report group as timedout when we fail to properly suspend
        drm/panthor: Fail job creation when the group is dead
        drm/panthor: Fix firmware initialization on systems with a page size > 4k
        accel/ivpu: Fix NOC firewall interrupt handling
        drm/xe/display: Add missing HPD interrupt enabling during non-d3cold RPM resume
        drm/xe/display: Separate the d3cold and non-d3cold runtime PM handling
        drm/xe: Remove runtime argument from display s/r functions
        drm/amdgpu/smu13: fix profile reporting
        drm/amd/pm: Vangogh: Fix kernel memory out of bounds write
        Revert "drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35"
        drm/sched: Mark scheduler work queues with WQ_MEM_RECLAIM
        drm/tegra: Fix NULL vs IS_ERR() check in probe()
        dt-bindings: display: mediatek: split: add subschema property constraints
        dt-bindings: display: mediatek: dpi: correct power-domains property
        drm/mediatek: Fix potential NULL dereference in mtk_crtc_destroy()
        ...
      269ce3bd
    • Linus Torvalds's avatar
      Merge tag 'cxl-fixes-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · b1966a1f
      Linus Torvalds authored
      Pull cxl fixes from Ira Weiny:
       "The bulk of these fixes center around an initialization order bug
        reported by Gregory Price and some additional fall out from the
        debugging effort.
      
        In summary, cxl_acpi and cxl_mem race and previously worked because of
        a bus_rescan_devices() while testing without modules built in.
      
        Unfortunately with modules built in the rescan would fail due to the
        cxl_port driver being registered late via the build order. Furthermore
        it was found bus_rescan_devices() did not guarantee a probe barrier
        which CXL was expecting. Additional fixes to cxl-test and decoder
        allocation came along as they were found in this debugging effort.
      
        The other fixes are pretty minor but one affects trace point data seen
        by user space.
      
        Summary:
      
         - Fix crashes when running with cxl-test code
      
         - Fix Trace DRAM Event Record field decodes
      
         - Fix module/built in initialization order errors
      
         - Fix use after free on decoder shutdowns
      
         - Fix out of order decoder allocations
      
         - Improve cxl-test to better reflect real world systems"
      
      * tag 'cxl-fixes-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl:
        cxl/test: Improve init-order fidelity relative to real-world systems
        cxl/port: Prevent out-of-order decoder allocation
        cxl/port: Fix use-after-free, permit out-of-order decoder shutdown
        cxl/acpi: Ensure ports ready at cxl_acpi_probe() return
        cxl/port: Fix cxl_bus_rescan() vs bus_rescan_devices()
        cxl/port: Fix CXL port initialization order when the subsystem is built-in
        cxl/events: Fix Trace DRAM Event Record
        cxl/core: Return error when cxl_endpoint_gather_bandwidth() handles a non-PCI device
      b1966a1f
  4. Nov 01, 2024
    • Linus Torvalds's avatar
      Merge tag 'block-6.12-20241101' of git://git.kernel.dk/linux · f4a1e8e3
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - Fixup for a recent blk_rq_map_user_bvec() patch
      
       - NVMe pull request via Keith:
           - Spec compliant identification fix (Keith)
           - Module parameter to enable backward compatibility on unusual
             namespace formats (Keith)
           - Target double free fix when using keys (Vitaliy)
           - Passthrough command error handling fix (Keith)
      
      * tag 'block-6.12-20241101' of git://git.kernel.dk/linux:
        nvme: re-fix error-handling for io_uring nvme-passthrough
        nvmet-auth: assign dh_key to NULL after kfree_sensitive
        nvme: module parameter to disable pi with offsets
        block: fix queue limits checks in blk_rq_map_user_bvec for real
        nvme: enhance cns version checking
      f4a1e8e3
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.12-20241101' of git://git.kernel.dk/linux · f0d3699a
      Linus Torvalds authored
      Pull io_uring fix from Jens Axboe:
      
       - Fix not honoring IOCB_NOWAIT for starting buffered writes in terms of
         calling sb_start_write(), leading to a deadlock if someone is
         attempting to freeze the file system with writes in progress, as each
         side will end up waiting for the other to make progress.
      
      * tag 'io_uring-6.12-20241101' of git://git.kernel.dk/linux:
        io_uring/rw: fix missing NOWAIT check for O_DIRECT start write
      f0d3699a
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · c4264568
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Make the ACPI CPPC library use a raw spinlock for operations carried
        out in scheduler context via the schedutil governor and the ACPI CPPC
        cpufreq driver (Pierre Gondois)"
      
      * tag 'acpi-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: CPPC: Make rmw_lock a raw_spin_lock
      c4264568
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · edf0227a
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
      
       - fix an uninitialized variable in GPIO swnode code
      
       - add a missing return value check for devm_mutex_init()
      
       - fix an old issue with debugfs output
      
      * tag 'gpio-fixes-for-v6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpiolib: fix debugfs dangling chip separator
        gpiolib: fix debugfs newline separators
        gpio: sloppy-logic-analyzer: Check for error code from devm_mutex_init() call
        gpio: fix uninit-value in swnode_find_gpio
      edf0227a
    • Dave Airlie's avatar
      Merge tag 'drm-xe-fixes-2024-10-31' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes · f99c7cca
      Dave Airlie authored
      
      Driver Changes:
      - Fix missing HPD interrupt enabling, bringing one PM refactor with it
        (Imre / Maarten)
      - Workaround LNL GGTT invalidation not being visible to GuC
        (Matthew Brost)
      - Avoid getting jobs stuck without a protecting timeout (Matthew Brost)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Lucas De Marchi <lucas.demarchi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/tsbftadm7owyizzdaqnqu7u4tqggxgeqeztlfvmj5fryxlfomi@5m5bfv2zvzmw
      f99c7cca
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · a031e154
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - Avoid accessing the early boot ACPI tables via unsafe memory
         attributes, which can result in incorrect ACPI table data appearing.
         This can cause all sorts of bad behavior.
      
       - Avoid compiler-inserted library calls in the VDSO.
      
       - GCC+Rust builds have been disabled, to avoid issues related to ISA
         string mismatched between the GCC and LLVM Rust implementations.
      
       - The NX flag is now set in the EFI PE/COFF headers, which is necessary
         for some distro GRUB versions to boot images.
      
       - A fix to avoid leaking DT node reference counts on ACPI systems
         during cache info parsing.
      
       - CPU numbers are now printed as unsigned values during hotplug.
      
       - A pair of build fixes for usused macros, which can trigger warnings
         on some configurations.
      
      * tag 'riscv-for-linus-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: Remove duplicated GET_RM
        riscv: Remove unused GENERATING_ASM_OFFSETS
        riscv: Use '%u' to format the output of 'cpu'
        riscv: Prevent a bad reference count on CPU nodes
        riscv: efi: Set NX compat flag in PE/COFF header
        RISC-V: disallow gcc + rust builds
        riscv: Do not use fortify in early code
        RISC-V: ACPI: fix early_ioremap to early_memremap
        riscv: vdso: Prevent the compiler from inserting calls to memset()
      a031e154
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 3dfffd50
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "The important one is a change to the way in which we handle protection
        keys around signal delivery so that we're more closely aligned with
        the x86 behaviour, however there is also a revert of the previous fix
        to disable software tag-based KASAN with GCC, since a workaround
        materialised shortly afterwards.
      
        I'd love to say we're done with 6.12, but we're aware of some
        longstanding fpsimd register corruption issues that we're almost at
        the bottom of resolving.
      
        Summary:
      
         - Fix handling of POR_EL0 during signal delivery so that pushing the
           signal context doesn't fail based on the pkey configuration of the
           interrupted context and align our user-visible behaviour with that
           of x86.
      
         - Fix a bogus pointer being passed to the CPU hotplug code from the
           Arm SDEI driver.
      
         - Re-enable software tag-based KASAN with GCC by using an alternative
           implementation of '__no_sanitize_address'"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: signal: Improve POR_EL0 handling to avoid uaccess failures
        firmware: arm_sdei: Fix the input parameter of cpuhp_remove_state()
        Revert "kasan: Disable Software Tag-Based KASAN with GCC"
        kasan: Fix Software Tag-Based KASAN with GCC
      3dfffd50
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.12-rc6.iomap' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs · 17fa6a5f
      Linus Torvalds authored
      Pull iomap fixes from Christian Brauner:
       "Fixes for iomap to prevent data corruption bugs in the fallocate
        unshare range implementation of fsdax and a small cleanup to turn
        iomap_want_unshare_iter() into an inline function"
      
      * tag 'vfs-6.12-rc6.iomap' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs:
        iomap: turn iomap_want_unshare_iter into an inline function
        fsdax: dax_unshare_iter needs to copy entire blocks
        fsdax: remove zeroing code from dax_unshare_iter
        iomap: share iomap_unshare_iter predicate code with fsdax
        xfs: don't allocate COW extents when unsharing a hole
      17fa6a5f
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.12-rc6.fixes' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs · d56239a8
      Linus Torvalds authored
      Pull filesystem fixes from Christian Brauner:
       "VFS:
      
         - Fix copy_page_from_iter_atomic() if KMAP_LOCAL_FORCE_MAP=y is set
      
         - Add a get_tree_bdev_flags() helper that allows to modify e.g.,
           whether errors are logged into the filesystem context during
           superblock creation. This is used by erofs to fix a userspace
           regression where an error is currently logged when its used on a
           regular file which is an new allowed mode in erofs.
      
        netfs:
      
         - Fix the sysfs debug path in the documentation.
      
         - Fix iov_iter_get_pages*() for folio queues by skipping the page
           extracation if we're at the end of a folio.
      
        afs:
      
         - Fix moving subdirectories to different parent directory.
      
        autofs:
      
         - Fix handling of AUTOFS_DEV_IOCTL_TIMEOUT_CMD ioctl in
           validate_dev_ioctl(). The actual ioctl number, not the ioctl
           command needs to be checked for autofs"
      
      * tag 'vfs-6.12-rc6.fixes' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs:
        iov_iter: fix copy_page_from_iter_atomic() if KMAP_LOCAL_FORCE_MAP
        autofs: fix thinko in validate_dev_ioctl()
        iov_iter: Fix iov_iter_get_pages*() for folio_queue
        afs: Fix missing subdir edit when renamed between parent dirs
        doc: correcting the debug path for cachefiles
        erofs: use get_tree_bdev_flags() to avoid misleading messages
        fs/super.c: introduce get_tree_bdev_flags()
      d56239a8
    • Linus Torvalds's avatar
      Merge tag 'for-6.12-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 6b492649
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "A few more stability fixes. There's one patch adding export of MIPS
        cmpxchg helper, used in the error propagation fix.
      
         - fix error propagation from split bios to the original btrfs bio
      
         - fix merging of adjacent extents (normal operation, defragmentation)
      
         - fix potential use after free after freeing btrfs device structures"
      
      * tag 'for-6.12-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fix defrag not merging contiguous extents due to merged extent maps
        btrfs: fix extent map merging not happening for adjacent extents
        btrfs: fix use-after-free of block device file in __btrfs_free_extra_devids()
        btrfs: fix error propagation of split bios
        MIPS: export __cmpxchg_small()
      6b492649
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2024-10-31' of git://evilpiepirate.org/bcachefs · 7b83601d
      Linus Torvalds authored
      Pull bcachefs fixes from Kent Overstreet:
       "Various syzbot fixes, and the more notable ones:
      
         - Fix for pointers in an extent overflowing the max (16) on a
           filesystem with many devices: we were creating too many cached
           copies when moving data around. Now, we only create at most one
           cached copy if there's a promote target set.
      
           Caching will be a bit broken for reflinked data until 6.13: I have
           larger series queued up which significantly improves the plumbing
           for data options down into the extent (bch_extent_rebalance) to fix
           this.
      
         - Fix for deadlock on -ENOSPC on tiny filesystems
      
           Allocation from the partial open_bucket list wasn't correctly
           accounting partial open_buckets as free: this fixes the main cause
           of tests timing out in the automated tests"
      
      * tag 'bcachefs-2024-10-31' of git://evilpiepirate.org/bcachefs:
        bcachefs: Fix NULL ptr dereference in btree_node_iter_and_journal_peek
        bcachefs: fix possible null-ptr-deref in __bch2_ec_stripe_head_get()
        bcachefs: Fix deadlock on -ENOSPC w.r.t. partial open buckets
        bcachefs: Don't filter partial list buckets in open_buckets_to_text()
        bcachefs: Don't keep tons of cached pointers around
        bcachefs: init freespace inited bits to 0 in bch2_fs_initialize
        bcachefs: Fix unhandled transaction restart in fallocate
        bcachefs: Fix UAF in bch2_reconstruct_alloc()
        bcachefs: fix null-ptr-deref in have_stripes()
        bcachefs: fix shift oob in alloc_lru_idx_fragmentation
        bcachefs: Fix invalid shift in validate_sb_layout()
      7b83601d
    • Vlastimil Babka's avatar
      mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned sizes · d4148aea
      Vlastimil Babka authored
      Since commit efa7df3e ("mm: align larger anonymous mappings on THP
      boundaries") a mmap() of anonymous memory without a specific address hint
      and of at least PMD_SIZE will be aligned to PMD so that it can benefit
      from a THP backing page.
      
      However this change has been shown to regress some workloads
      significantly.  [1] reports regressions in various spec benchmarks, with
      up to 600% slowdown of the cactusBSSN benchmark on some platforms.  The
      benchmark seems to create many mappings of 4632kB, which would have merged
      to a large THP-backed area before commit efa7df3e and now they are
      fragmented to multiple areas each aligned to PMD boundary with gaps
      between.  The regression then seems to be caused mainly due to the
      benchmark's memory access pattern suffering from TLB or cache aliasing due
      to the aligned boundaries of the individual areas.
      
      Another known regression bisected to commit efa7df3e is darktable [2]
      [3] and early testing suggests this patch fixes the regression there as
      well.
      
      To fix the regression but still try to benefit from THP-friendly anonymous
      mapping alignment, add a condition that the size of the mapping must be a
      multiple of PMD size instead of at least PMD size.  In case of many
      odd-sized mapping like the cactusBSSN creates, those will stop being
      aligned and with gaps between, and instead naturally merge again.
      
      Link: https://lkml.kernel.org/r/20241024151228.101841-2-vbabka@suse.cz
      
      
      Fixes: efa7df3e ("mm: align larger anonymous mappings on THP boundaries")
      Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Reported-by: default avatarMichael Matz <matz@suse.de>
      Debugged-by: default avatarGabriel Krisman Bertazi <gabriel@krisman.be>
      Closes: https://bugzilla.suse.com/show_bug.cgi?id=1229012
      
       [1]
      Reported-by: default avatarMatthias Bodenbinder <matthias@bodenbinder.de>
      Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219366 [2]
      Closes: https://lore.kernel.org/all/2050f0d4-57b0-481d-bab8-05e8d48fed0c@leemhuis.info/
      
       [3]
      Reviewed-by: default avatarLorenzo Stoakes <lorenzo.stoakes@oracle.com>
      Reviewed-by: default avatarYang Shi <yang@os.amperecomputing.com>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: Jann Horn <jannh@google.com>
      Cc: Liam R. Howlett <Liam.Howlett@Oracle.com>
      Cc: Petr Tesarik <ptesarik@suse.com>
      Cc: Thorsten Leemhuis <regressions@leemhuis.info>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      d4148aea
    • Chen Ridong's avatar
      mm: shrinker: avoid memleak in alloc_shrinker_info · 15e81567
      Chen Ridong authored
      A memleak was found as below:
      
      unreferenced object 0xffff8881010d2a80 (size 32):
        comm "mkdir", pid 1559, jiffies 4294932666
        hex dump (first 32 bytes):
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  @...............
        backtrace (crc 2e7ef6fa):
          [<ffffffff81372754>] __kmalloc_node_noprof+0x394/0x470
          [<ffffffff813024ab>] alloc_shrinker_info+0x7b/0x1a0
          [<ffffffff813b526a>] mem_cgroup_css_online+0x11a/0x3b0
          [<ffffffff81198dd9>] online_css+0x29/0xa0
          [<ffffffff811a243d>] cgroup_apply_control_enable+0x20d/0x360
          [<ffffffff811a5728>] cgroup_mkdir+0x168/0x5f0
          [<ffffffff8148543e>] kernfs_iop_mkdir+0x5e/0x90
          [<ffffffff813dbb24>] vfs_mkdir+0x144/0x220
          [<ffffffff813e1c97>] do_mkdirat+0x87/0x130
          [<ffffffff813e1de9>] __x64_sys_mkdir+0x49/0x70
          [<ffffffff81f8c928>] do_syscall_64+0x68/0x140
          [<ffffffff8200012f>] entry_SYSCALL_64_after_hwframe+0x76/0x7e
      
      alloc_shrinker_info(), when shrinker_unit_alloc() returns an errer, the
      info won't be freed.  Just fix it.
      
      Link: https://lkml.kernel.org/r/20241025060942.1049263-1-chenridong@huaweicloud.com
      
      
      Fixes: 307becec ("mm: shrinker: add a secondary array for shrinker_info::{map, nr_deferred}")
      Signed-off-by: default avatarChen Ridong <chenridong@huawei.com>
      Acked-by: default avatarQi Zheng <zhengqi.arch@bytedance.com>
      Acked-by: default avatarRoman Gushchin <roman.gushchin@linux.dev>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: Muchun Song <muchun.song@linux.dev>
      Cc: Wang Weiyang <wangweiyang2@huawei.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      15e81567
    • Eugen Hristev's avatar
Loading