Skip to content
Snippets Groups Projects
  1. Mar 30, 2025
    • Stephen Rothwell's avatar
    • Stephen Rothwell's avatar
    • Stephen Rothwell's avatar
    • Stephen Rothwell's avatar
    • Stephen Rothwell's avatar
      5951e68e
    • Stephen Rothwell's avatar
    • Stephen Rothwell's avatar
    • Stephen Rothwell's avatar
    • Wang Liang's avatar
      xsk: Fix __xsk_generic_xmit() error code when cq is full · c6d8c020
      Wang Liang authored
      
      When the cq reservation is failed, the error code is not set which is
      initialized to zero in __xsk_generic_xmit(). That means the packet is not
      send successfully but sendto() return ok.
      
      Considering the impact on uapi, return -EAGAIN is a good idea. The cq is
      full usually because it is not released in time, try to send msg again is
      appropriate.
      
      The bug was at the very early implementation of xsk, so the Fixes tag
      targets the commit that introduced the changes in
      xsk_cq_reserve_addr_locked where this fix depends on.
      
      Fixes: e6c4047f ("xsk: Use xsk_buff_pool directly for cq functions")
      Suggested-by: default avatarMagnus Karlsson <magnus.karlsson@gmail.com>
      Signed-off-by: default avatarWang Liang <wangliang74@huawei.com>
      Signed-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
      Acked-by: default avatarStanislav Fomichev <sdf@fomichev.me>
      Link: https://patch.msgid.link/20250227081052.4096337-1-wangliang74@huawei.com
      
      
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      c6d8c020
    • Linus Torvalds's avatar
      Merge tag 'bpf_try_alloc_pages' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · aa918db7
      Linus Torvalds authored
      Pull bpf try_alloc_pages() support from Alexei Starovoitov:
       "The pull includes work from Sebastian, Vlastimil and myself with a lot
        of help from Michal and Shakeel.
      
        This is a first step towards making kmalloc reentrant to get rid of
        slab wrappers: bpf_mem_alloc, kretprobe's objpool, etc. These patches
        make page allocator safe from any context.
      
        Vlastimil kicked off this effort at LSFMM 2024:
      
          https://lwn.net/Articles/974138/
      
        and we continued at LSFMM 2025:
      
          https://lore.kernel.org/all/CAADnVQKfkGxudNUkcPJgwe3nTZ=xohnRshx9kLZBTmR_E1DFEg@mail.gmail.com/
      
        Why:
      
        SLAB wrappers bind memory to a particular subsystem making it
        unavailable to the rest of the kernel. Some BPF maps in production
        consume Gbytes of preallocated memory. Top 5 in Meta: 1.5G, 1.2G,
        1.1G, 300M, 200M. Once we have kmalloc that works in any context BPF
        map preallocation won't be necessary.
      
        How:
      
        Synchronous kmalloc/page alloc stack has multiple stages going from
        fast to slow: cmpxchg16 -> slab_alloc -> new_slab -> alloc_pages ->
        rmqueue_pcplist -> __rmqueue, where rmqueue_pcplist was already
        relying on trylock.
      
        This set changes rmqueue_bulk/rmqueue_buddy to attempt a trylock and
        return ENOMEM if alloc_flags & ALLOC_TRYLOCK. It then wraps this
        functionality into try_alloc_pages() helper. We make sure that the
        logic is sane in PREEMPT_RT.
      
        End result: try_alloc_pages()/free_pages_nolock() are safe to call
        from any context.
      
        try_kmalloc() for any context with similar trylock approach will
        follow. It will use try_alloc_pages() when slab needs a new page.
        Though such try_kmalloc/page_alloc() is an opportunistic allocator,
        this design ensures that the probability of successful allocation of
        small objects (up to one page in size) is high.
      
        Even before we have try_kmalloc(), we already use try_alloc_pages() in
        BPF arena implementation and it's going to be used more extensively in
        BPF"
      
      * tag 'bpf_try_alloc_pages' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next:
        mm: Fix the flipped condition in gfpflags_allow_spinning()
        bpf: Use try_alloc_pages() to allocate pages for bpf needs.
        mm, bpf: Use memcg in try_alloc_pages().
        memcg: Use trylock to access memcg stock_lock.
        mm, bpf: Introduce free_pages_nolock()
        mm, bpf: Introduce try_alloc_pages() for opportunistic page allocation
        locking/local_lock: Introduce localtry_lock_t
      aa918db7
    • Linus Torvalds's avatar
      Merge tag 'bpf_res_spin_lock' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · 494e7fe5
      Linus Torvalds authored
      Pull bpf relisient spinlock support from Alexei Starovoitov:
       "This patch set introduces Resilient Queued Spin Lock (or rqspinlock
        with res_spin_lock() and res_spin_unlock() APIs).
      
        This is a qspinlock variant which recovers the kernel from a stalled
        state when the lock acquisition path cannot make forward progress.
        This can occur when a lock acquisition attempt enters a deadlock
        situation (e.g. AA, or ABBA), or more generally, when the owner of the
        lock (which we’re trying to acquire) isn’t making forward progress.
        Deadlock detection is the main mechanism used to provide instant
        recovery, with the timeout mechanism acting as a final line of
        defense. Detection is triggered immediately when beginning the waiting
        loop of a lock slow path.
      
        Additionally, BPF programs attached to different parts of the kernel
        can introduce new control flow into the kernel, which increases the
        likelihood of deadlocks in code not written to handle reentrancy.
        There have been multiple syzbot reports surfacing deadlocks in
        internal kernel code due to the diverse ways in which BPF programs can
        be attached to different parts of the kernel. By switching the BPF
        subsystem’s lock usage to rqspinlock, all of these issues are
        mitigated at runtime.
      
        This spin lock implementation allows BPF maps to become safer and
        remove mechanisms that have fallen short in assuring safety when
        nesting programs in arbitrary ways in the same context or across
        different contexts.
      
        We run benchmarks that stress locking scalability and perform
        comparison against the baseline (qspinlock). For the rqspinlock case,
        we replace the default qspinlock with it in the kernel, such that all
        spin locks in the kernel use the rqspinlock slow path. As such,
        benchmarks that stress kernel spin locks end up exercising rqspinlock.
      
        More details in the cover letter in commit 6ffb9017 ("Merge branch
        'resilient-queued-spin-lock'")"
      
      * tag 'bpf_res_spin_lock' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (24 commits)
        selftests/bpf: Add tests for rqspinlock
        bpf: Maintain FIFO property for rqspinlock unlock
        bpf: Implement verifier support for rqspinlock
        bpf: Introduce rqspinlock kfuncs
        bpf: Convert lpm_trie.c to rqspinlock
        bpf: Convert percpu_freelist.c to rqspinlock
        bpf: Convert hashtab.c to rqspinlock
        rqspinlock: Add locktorture support
        rqspinlock: Add entry to Makefile, MAINTAINERS
        rqspinlock: Add macros for rqspinlock usage
        rqspinlock: Add basic support for CONFIG_PARAVIRT
        rqspinlock: Add a test-and-set fallback
        rqspinlock: Add deadlock detection and recovery
        rqspinlock: Protect waiters in trylock fallback from stalls
        rqspinlock: Protect waiters in queue from stalls
        rqspinlock: Protect pending bit owners from stalls
        rqspinlock: Hardcode cond_acquire loops for arm64
        rqspinlock: Add support for timeouts
        rqspinlock: Drop PV and virtualization support
        rqspinlock: Add rqspinlock.h header
        ...
      494e7fe5
    • Linus Torvalds's avatar
      Merge tag 'bpf-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · fa593d0f
      Linus Torvalds authored
      Pull bpf updates from Alexei Starovoitov:
       "For this merge window we're splitting BPF pull request into three for
        higher visibility: main changes, res_spin_lock, try_alloc_pages.
      
        These are the main BPF changes:
      
         - Add DFA-based live registers analysis to improve verification of
           programs with loops (Eduard Zingerman)
      
         - Introduce load_acquire and store_release BPF instructions and add
           x86, arm64 JIT support (Peilin Ye)
      
         - Fix loop detection logic in the verifier (Eduard Zingerman)
      
         - Drop unnecesary lock in bpf_map_inc_not_zero() (Eric Dumazet)
      
         - Add kfunc for populating cpumask bits (Emil Tsalapatis)
      
         - Convert various shell based tests to selftests/bpf/test_progs
           format (Bastien Curutchet)
      
         - Allow passing referenced kptrs into struct_ops callbacks (Amery
           Hung)
      
         - Add a flag to LSM bpf hook to facilitate bpf program signing
           (Blaise Boscaccy)
      
         - Track arena arguments in kfuncs (Ihor Solodrai)
      
         - Add copy_remote_vm_str() helper for reading strings from remote VM
           and bpf_copy_from_user_task_str() kfunc (Jordan Rome)
      
         - Add support for timed may_goto instruction (Kumar Kartikeya
           Dwivedi)
      
         - Allow bpf_get_netns_cookie() int cgroup_skb programs (Mahe Tardy)
      
         - Reduce bpf_cgrp_storage_busy false positives when accessing cgroup
           local storage (Martin KaFai Lau)
      
         - Introduce bpf_dynptr_copy() kfunc (Mykyta Yatsenko)
      
         - Allow retrieving BTF data with BTF token (Mykyta Yatsenko)
      
         - Add BPF kfuncs to set and get xattrs with 'security.bpf.' prefix
           (Song Liu)
      
         - Reject attaching programs to noreturn functions (Yafang Shao)
      
         - Introduce pre-order traversal of cgroup bpf programs (Yonghong
           Song)"
      
      * tag 'bpf-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (186 commits)
        selftests/bpf: Add selftests for load-acquire/store-release when register number is invalid
        bpf: Fix out-of-bounds read in check_atomic_load/store()
        libbpf: Add namespace for errstr making it libbpf_errstr
        bpf: Add struct_ops context information to struct bpf_prog_aux
        selftests/bpf: Sanitize pointer prior fclose()
        selftests/bpf: Migrate test_xdp_vlan.sh into test_progs
        selftests/bpf: test_xdp_vlan: Rename BPF sections
        bpf: clarify a misleading verifier error message
        selftests/bpf: Add selftest for attaching fexit to __noreturn functions
        bpf: Reject attaching fexit/fmod_ret to __noreturn functions
        bpf: Only fails the busy counter check in bpf_cgrp_storage_get if it creates storage
        bpf: Make perf_event_read_output accessible in all program types.
        bpftool: Using the right format specifiers
        bpftool: Add -Wformat-signedness flag to detect format errors
        selftests/bpf: Test freplace from user namespace
        libbpf: Pass BPF token from find_prog_btf_id to BPF_BTF_GET_FD_BY_ID
        bpf: Return prog btf_id without capable check
        bpf: BPF token support for BPF_BTF_GET_FD_BY_ID
        bpf, x86: Fix objtool warning for timed may_goto
        bpf: Check map->record at the beginning of check_and_free_fields()
        ...
      fa593d0f
    • Linus Torvalds's avatar
      Merge tag 'mailbox-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox · 7f2ff7b6
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
       "Core:
         - misc rejig of header includes
         - minor const fixes
      
        Misc:
         - constify amba_id table
      
        pcc:
         - cleanup and refactoring of shmem and irq handling
      
        qcom:
         - add MSM8226 compatible
      
        fsl,mu:
         - add i.MX94 compatible
      
        mediatek:
         - remove cl in struct cmdq_pkt
      
        tegra:
         - define dimensioning masks in SoC data"
      
      * tag 'mailbox-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox: (25 commits)
        mailbox: Remove unneeded semicolon
        mailbox: pcc: Refactor and simplify check_and_ack()
        mailbox: pcc: Always map the shared memory communication address
        mailbox: pcc: Refactor error handling in irq handler into separate function
        mailbox: pcc: Use acpi_os_ioremap() instead of ioremap()
        mailbox: pcc: Return early if no GAS register from pcc_mbox_cmd_complete_check
        mailbox: pcc: Drop unnecessary endianness conversion of pcc_hdr.flags
        mailbox: pcc: Always clear the platform ack interrupt first
        mailbox: pcc: Fix the possible race in updation of chan_in_use flag
        dt-bindings: mailbox: qcom: add compatible for MSM8226 SoC
        dt-bindings: mailbox: fsl,mu: Add i.MX94 compatible
        MAINTAINERS: add mailbox API's tree type and location
        mailbox: remove unused header files
        mailbox: explicitly include <linux/bits.h>
        mailbox: sort headers alphabetically
        mailbox: don't protect of_parse_phandle_with_args with con_mutex
        mailbox: use error ret code of of_parse_phandle_with_args()
        mailbox: arm_mhuv2: Constify amba_id table
        mailbox: arm_mhu_db: Constify amba_id table
        mailbox: arm_mhu: Constify amba_id table
        ...
      7f2ff7b6
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · 91481c4a
      Linus Torvalds authored
      Pull HSI update from Sebastian Reichel:
      
       - ssi_protocol: fix potential use after free after module removal
      
      * tag 'hsi-for-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        HSI: ssi_protocol: Fix use after free vulnerability in ssi_protocol Driver Due to Race Condition
      91481c4a
    • Linus Torvalds's avatar
      Merge tag 'for-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 556f1b48
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "Power-supply core:
         - remove unused set_charged infrastructure
         - drop of_node from power_supply struct
      
        Power-supply drivers:
         - axp717: support devices without thermistors
         - bq27xxx: support max design voltage for bq270x0 and bq27x10
         - pcf50633: drop charger driver
         - max1720x: add battery health support
         - switch all power-supply devices from of_node to fwnode
         - convert regmap users to maple tree register cache
         - convert drivers to devm_kmemdup_array
         - misc cleanups and fixes
      
        Reset drivers:
         - at91-sama5d2_shdwc: add sama7d65 support
      
      * tag 'for-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (30 commits)
        power: supply: mt6370: Remove redundant 'flush_workqueue()' calls
        Revert "power: supply: bq27xxx: do not report bogus zero values"
        power: supply: max77693: Fix wrong conversion of charge input threshold value
        power: supply: pcf50633: Remove charger
        power: supply: all: switch psy_cfg from of_node to fwnode
        power: supply: core: get rid of of_node
        power: reset: at91-sama5d2_shdwc: Add sama7d65 PMC
        power: supply: smb347: convert to use maple tree register cache
        power: supply: rt9455: convert to use maple tree register cache
        power: supply: max1720x: convert to use maple tree register cache
        power: supply: ltc4162l: convert to use maple tree register cache
        power: supply: bq25980: convert to use maple tree register cache
        power: supply: bq25890: convert to use maple tree register cache
        power: supply: bq2515x: convert to use maple tree register cache
        power: supply: bq24257: convert to use maple tree register cache
        power: supply: bd99954: convert to use maple tree register cache
        power: supply: Remove unused set_charged method
        power: supply: ds2760: Remove unused ds2760_battery_set_charged
        power: supply: core: Remove unused power_supply_set_battery_charged
        power: supply: sc27xx: use devm_kmemdup_array()
        ...
      556f1b48
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 59c35416
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "Here's the pile of clk driver patches. The usual suspects^Wsilicon
        vendors are all here, adding new SoC support and fixing existing code.
      
        There are a few patches to the clk framework here as well. They've
        been baking in linux-next for weeks so I'm hoping we don't have to
        revert them. The disable OF node patch is probably the scariest one
        although it seems unlikely that a system would be relying on a driver
        _not_ probing because the clk never appeared, but you never know.
      
        Nothing looks out of the ordinary on the driver side but that's
        because it's mostly a bunch of data.
      
        Core:
         - Use dev_err_probe() in the clk registration path (Peering into the
           crystal ball shows many patches that remove printks)
         - Check for disabled OF nodes in of_clk_get_hw_from_clkspec()
      
        New Drivers:
         - Allwinner A523/T527 clk driver
         - Qualcomm IPQ9574 NSS clk driver
         - Qualcomm QCS8300 GPU and video clk drivers
         - Qualcomm SDM429 RPM clks
         - Qualcomm QCM6490 LPASS (low power audio) resets
         - Samsung Exynos2200: driver for several clock controllers (Alive,
           CMGP, HSI, PERIC/PERIS, TOP, UFS and VFS)
         - Samsung Exynos7870: Driver for several clock controllers (Alive,
           MIF, DISP AUD, FSYS, G3D, ISP, MFC and PERI)
         - Rockchip rk3528 and rk3562 clk driver
      
        Updates:
         - Various fixes to SoC clk drivers for incorrect data, avoid touching
           protected registers, etc.
         - Additions for some missing clks in existing SoC clk drivers
         - DT schema conversions from text to YAML
         - Kconfig cleanups to allow drivers to be compiled on moar
           architectures"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (125 commits)
        clk: qcom: Add NSS clock Controller driver for IPQ9574
        clk: qcom: gcc-ipq9574: Add support for gpll0_out_aux clock
        dt-bindings: clock: Add ipq9574 NSSCC clock and reset definitions
        dt-bindings: clock: gcc-ipq9574: Add definition for GPLL0_OUT_AUX
        clk: qcom: gcc-msm8953: fix stuck venus0_core0 clock
        clk: qcom: mmcc-sdm660: fix stuck video_subcore0 clock
        dt-bindings: clock: qcom,x1e80100-camcc: Fix the list of required-opps
        clk: amlogic: a1: fix a typo
        clk: amlogic: gxbb: drop non existing 32k clock parent
        clk: amlogic: gxbb: drop incorrect flag on 32k clock
        clk: amlogic: g12b: fix cluster A parent data
        clk: amlogic: g12a: fix mmc A peripheral clock
        dt-bindings: clocks: atmel,at91rm9200-pmc: add missing compatibles
        dt-bindings: reset: fix double id on rk3562-cru reset ids
        drivers: clk: qcom: ipq5424: fix the freq table of sdcc1_apps clock
        clk: qcom: lpassaudiocc-sc7280: Add support for LPASS resets for QCM6490
        dt-bindings: clock: qcom: Add compatible for QCM6490 boards
        clk: qcom: gdsc: Update the status poll timeout for GDSC
        clk: qcom: gdsc: Set retain_ff before moving to HW CTRL
        clk: davinci: remove support for da830
        ...
      59c35416
    • Linus Torvalds's avatar
      Merge tag 'rproc-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 472863ab
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
      
       - Transition the i.MX8MP DSP remoteproc driver to use the reset
         framework for driving the run/stall reset bits
      
       - Add support for managing the modem remoteprocessor on the Qualcomm
         MSM8226, MSM8926, and SM8750 platforms
      
      * tag 'rproc-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (28 commits)
        remoteproc: qcom_q6v5_pas: Make single-PD handling more robust
        remoteproc: qcom_q6v5_pas: Use resource with CX PD for MSM8226
        remoteproc: core: Clear table_sz when rproc_shutdown
        remoteproc: sysmon: Update qcom_add_sysmon_subdev() comment
        dt-bindings: remoteproc: Consolidate SC8180X and SM8150 PAS files
        irqdomain: remoteproc: Switch to of_fwnode_handle()
        remoteproc: qcom: pas: add minidump_id to SC7280 WPSS
        remoteproc: imx_dsp_rproc: Document run_stall struct member
        remoteproc: qcom: pas: Add SM8750 MPSS
        dt-bindings: remoteproc: Add SM8750 MPSS
        imx_dsp_rproc: Use reset controller API to control the DSP
        reset: imx8mp-audiomix: Add support for DSP run/stall
        reset: imx8mp-audiomix: Introduce active_low configuration option
        reset: imx8mp-audiomix: Prepare the code for more reset bits
        reset: imx8mp-audiomix: Add prefix for internal macro
        dt-bindings: dsp: fsl,dsp: Add resets property
        dt-bindings: reset: audiomix: Add reset ids for EARC and DSP
        remoteproc: qcom_wcnss: Handle platforms with only single power domain
        dt-bindings: remoteproc: qcom,wcnss-pil: Add support for single power-domain platforms
        remoteproc: qcom_q6v5_mss: Add modem support on MSM8926
        ...
      472863ab
    • Linus Torvalds's avatar
      Merge tag 'hwlock-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 7d4eca7a
      Linus Torvalds authored
      Pull hwspinlock updates from Bjorn Andersson:
       "Drop a few unused functions from the hwspinlock framework"
      
      * tag 'hwlock-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        hwspinlock: Remove unused hwspin_lock_get_id()
        hwspinlock: Remove unused (devm_)hwspin_lock_request()
      7d4eca7a
  2. Mar 29, 2025
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 29d9983b
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "Core changes:
      
         - None really.
      
        New drivers:
      
         - AMD ISP411 "AMD ISP" driver
      
         - Exynos 2200 and 7870 SoC subdrivers
      
         - Sophgo RISC-V SG2042 and SG2044 subdrivers
      
         - Amlogic A4 subdriver
      
         - Rockchip RK3528 subdriver
      
         - Broadcom BCM21664 subdriver
      
         - Allwinner A523/T527 subdriver
      
         - Ingenic X1600 subdriver
      
         - Microchip SAMA7D65 subdriver, essentially a re-branded Atmel AT91
           PIO4 driver, but nowadays a Microschip SoC line
      
        Improvements:
      
         - Bring in the devm_kmemdup_array() helper and use it throughout,
           also bring in changes to other subsystems for this to establish
           this helper
      
         - Support EGPIO on the Qualcomm SA8775P SoC
      
         - Extend EINT support in the Mediatek driver"
      
      * tag 'pinctrl-v6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (101 commits)
        pinctrl: mediatek: Add EINT support for multiple addresses
        pinctrl: amlogic-a4: Drop surplus semicolon
        pinctrl: nuvoton: Reduce use of OF-specific APIs
        pinctrl: nuvoton: Convert to use struct group_desc
        pinctrl: nuvoton: Make use of struct pinfunction and PINCTRL_PINFUNCTION()
        pinctrl: nuvoton: Convert to use struct pingroup and PINCTRL_PINGROUP()
        pinctrl: npcm8xx: Fix incorrect struct npcm8xx_pincfg assignment
        pinctrl: tegra: Fix off by one in tegra_pinctrl_get_group()
        pinctrl: PINCTRL_AMDISP should depend on DRM_AMD_ISP
        pinctrl: qcom: sa8775p: Enable egpio function
        dt-bindings: pinctrl: qcom: Add egpio function for sa8775p
        pinctrl: qcom: tlmm-test: Validate irq_enable delivers edge irqs
        pinctrl: qcom: Clear latched interrupt status when changing IRQ type
        dt-bindings: pinctrl: airoha: Add missing gpio-ranges property
        pinctrl: bcm281xx: Add missing assignment in bcm21664_pinctrl_lock_all()
        pinctrl: amd: isp411: Fix IS_ERR() vs NULL check in probe()
        dt-bindings: pinctrl: at91-pio4: add microchip,sama7d65-pinctrl
        pinctrl: tegra: Set SFIO mode to Mux Register
        pinctrl-tegra: Restore SFSEL bit when freeing pins
        pinctrl: tegra: Add descriptions for SoC data fields
        ...
      29d9983b
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 93d52288
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
      
       - Apple DWI Backlight:
          - Added devicetree bindings for backlight controllers on Apple's DWI
            interface.
          - Added a new driver (apple_dwi_bl) for these controllers found on
            some Apple mobile devices.
          - Added MAINTAINERS entries for the new driver.
      
       - led_bl: Fixed a locking issue by holding the led_access lock when
         calling led_sysfs_disable() during device removal to prevent
         potential warnings.
      
       - Removed unnecessary <linux/fb.h> includes from a bunch of drivers.
      
       - tdo24m: Removed redundant whitespace in Kconfig description.
      
       - pcf50633-backlight: Removed the driver as the underlying pcf50633 MFD
         and s3c24xx platform support were removed.
      
      * tag 'backlight-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: (22 commits)
        backlight: pcf50633-backlight: Remove unused driver
        backlight: tdo24m: Eliminate redundant whitespace
        MAINTAINERS: Add entries for Apple DWI backlight controller
        backlight: apple_dwi_bl: Add Apple DWI backlight driver
        dt-bindings: leds: backlight: apple,dwi-bl: Add Apple DWI backlight
        backlight: led_bl: Hold led_access lock when calling led_sysfs_disable()
        backlight: wm831x_bl: Do not include <linux/fb.h>
        backlight: vgg2432a4: Do not include <linux/fb.h>
        backlight: tps65217_bl: Do not include <linux/fb.h>
        backlight: max8925_bl: Do not include <linux/fb.h>
        backlight: lv5207lp: Do not include <linux/fb.h>
        backlight: locomolcd: Do not include <linux/fb.h>
        backlight: hp680_bl: Do not include <linux/fb.h>
        backlight: ep93xx_bl: Do not include <linux/fb.h>
        backlight: da9052_bl: Do not include <linux/fb.h>
        backlight: da903x_bl: Do not include <linux/fb.h>
        backlight: bd6107_bl: Do not include <linux/fb.h>
        backlight: as3711_bl: Do not include <linux/fb.h>
        backlight: adp8870_bl: Do not include <linux/fb.h>
        backlight: adp8860_bl: Do not include <linux/fb.h>
        ...
      93d52288
    • Linus Torvalds's avatar
      Merge tag 'leds-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds · cb9b4c34
      Linus Torvalds authored
      Pull LED updates from Lee Jones:
      
       - pca955x: Add HW blink support, utilizing PWM0. It supports one
         frequency across all blinking LEDs and falls back to software blink
         if different frequencies are requested.
      
       - trigger: netdev: Allow configuring LED blink interval via .blink_set
         even when HW offload (.hw_control) is enabled.
      
       - led-core: Fix a race condition where a quick LED_OFF followed by
         another brightness set could leave the LED off incorrectly,
         especially noticeable after the introduction of the ordered
         workqueue.
      
       - qcom-lpg: Add support for 6-bit PWM resolution alongside the existing
         9-bit support.
      
       - qcom-lpg: Fix PWM value capping to respect the selected resolution
         (6-bit or 9-bit) for normal PWMs.
      
       - qcom-lpg: Fix PWM value capping to respect the selected resolution
         for Hi-Res PWMs.
      
       - qcom-lpg: Fix calculation of the best period for Hi-Res PWMs to
         prevent requested duty cycles from exceeding the maximum allowed by
         the selected resolution.
      
       - st1202: Add a check for the error code returned by devm_mutex_init().
      
       - pwm-multicolor: Add a check for the return value of
         fwnode_property_read_u32().
      
       - st1202: Ensure hardware initialization (st1202_setup) happens before
         DT node processing (st1202_dt_init).
      
       - Kconfig: leds-st1202: Add select LEDS_TRIGGER_PATTERN as it's
         required by the driver.
      
       - lp8860: Drop unneeded explicit assignment to REGCACHE_NONE.
      
       - pca955x: Refactor code with helper functions and rename some
         functions/variables for clarity.
      
       - pca955x: Pass driver data pointers instead of the I2C client to
         helper functions.
      
       - pca955x: Optimize probe LED selection logic to reduce I2C operations.
      
       - pca955x: Revert the removal of pca95xx_num_led_regs() (renaming it to
         pca955x_num_led_regs) as it's needed for HW blink support.
      
       - st1202: Refactor st1202_led_set() to use the !! operator for boolean
         conversion.
      
       - st1202: Minor spacing and proofreading edits in comments.
      
       - Directory Rename: Rename the drivers/leds/simple directory to
         drivers/leds/simatic as the drivers within are not simple.
      
       - mlxcpld: Remove unused include of acpi.h.
      
       - nic78bx: Tidy up the ACPI ID table (remove ACPI_PTR, use
         mod_devicetable.h, remove explicit driver_data initializer).
      
       - tlc591xx: Convert text binding to YAML format, add child node
         constraints, and fix typos/formatting in the example.
      
       - qcom-lpg: Document the qcom,pm8937-pwm compatible string as a
         fallback for qcom,pm8916-pwm.
      
      * tag 'leds-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (23 commits)
        leds: nic78bx: Tidy up ACPI ID table
        leds: mlxcpld: Remove unused ACPI header inclusion
        leds: rgb: leds-qcom-lpg: Fix calculation of best period Hi-Res PWMs
        leds: rgb: leds-qcom-lpg: Fix pwm resolution max for Hi-Res PWMs
        leds: rgb: leds-qcom-lpg: Fix pwm resolution max for normal PWMs
        leds: Rename simple directory to simatic
        leds: Kconfig: leds-st1202: Add select for required LEDS_TRIGGER_PATTERN
        leds: leds-st1202: Spacing and proofreading editing
        leds: leds-st1202: Initialize hardware before DT node child operations
        leds: pwm-multicolor: Add check for fwnode_property_read_u32
        leds: rgb: leds-qcom-lpg: Add support for 6-bit PWM resolution
        leds: Fix LED_OFF brightness race
        Revert "leds-pca955x: Remove the unused function pca95xx_num_led_regs()"
        leds: st1202: Refactor st1202_led_set() to use !! operator for boolean conversion
        dt-bindings: leds: qcom-lpg: Document PM8937 PWM compatible
        leds: pca955x: Add HW blink support
        leds: pca955x: Optimize probe LED selection
        leds: pca955x: Use pointers to driver data rather than I2C client
        leds: pca955x: Refactor with helper functions and renaming
        dt-bindings: leds: Convert leds-tlc591xx.txt to yaml format
        ...
      cb9b4c34
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · dcab75a3
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "Maxim MAX77705:
         - Added core MFD driver.
         - Added charger driver.
         - Added devicetree bindings for the charger and MFD core.
         - Added Haptic controller support via the input subsystem.
         - Added LED support.
         - Added support to simple-mfd-i2c for fuel gauge and hwmon.
      
        Samsung S2MPU05 (Exynos7870 PMIC):
         - Added core MFD support.
         - Added Regulator support for 21 LDOs and 5 BUCKs.
         - Added devicetree bindings for regulators and the PMIC core.
      
        TI TPS65215 & TPS65214:
         - Added support to the existing TPS65219 driver.
         - Added devicetree bindings.
      
        STMicroelectronics STM32MP25:
         - Added support to the stm32-timers MFD driver.
         - Added devicetree bindings.
      
        Congatec Board Controller (CGBC):
         - Added HWMON support for internal sensors.
         - Added support for the conga-SA8 module.
      
        Microchip LAN969X:
         - Enabled the at91-usart MFD driver for this architecture.
      
        MediaTek MT6359:
         - Added mfd_cell for mt6359-accdet to allow its driver to probe.
      
        Other misc driver updates:
         - AXP20X (AXP717): Added AXP717_TS_PIN_CFG register to writeable regs
           for temperature sensor configuration.
         - SM501: Switched to using BIT() macro to mitigate potential integer
           overflows in GPIO functions.
         - ENE KB3930: Added a NULL pointer check for off_gpios during probe
           to prevent potential dereference.
         - SYSCON: Added a check for invalid resource size to prevent issues
           from DT misconfiguration.
         - CGBC: Corrected signedness issues in cgbc_session_request
         - intel_soc_pmic_chtdc_ti / intel_soc_pmic_crc: Removed unneeded
           explicit assignment to REGCACHE_NONE.
         - ipaq-micro / tps65010: Switched to using str_enable_disable()
           helpers for clarity and potential size reduction.
         - upboard-fpga: Removed unnecessary ACPI_PTR() annotation.
         - max8997: Removed unused max8997_irq_exit() function, using devm_*
           helpers instead.
         - lp3943: Dropped unused #include <linux/pwm.h> from the header file.
         - db8500-prcmu: Removed needless return statements in void APIs.
         - qnap-mcu: Replaced commas with semicolons between expressions for
           correctness.
         - STA2X11: Removed the core MFD driver as the underlying platform
           support was removed.
         - EZX-PCAP: Removed the unused pcap_adc_sync function.
         - PCF50633 (OpenMoko PMIC): Removed the entire driver (core, adc,
           gpio, irq) as the underlying s3c24xx platform support was removed.
      
        Devicetree updates:
         - Converted fsl,mcu-mpc8349emitx binding to YAML
         - Added qcom,msm8937-tcsr compatible
         - Added microchip,sama7d65-flexcom compatible
         - Added rockchip,rk3528-qos syscon compatible
         - Added airoha,en7581-pbus-csr syscon compatible
         - Added microchip,sama7d65-ddr3phy syscon compatible
         - Added microchip,sama7d65-sfrbu syscon compatible"
      
      * tag 'mfd-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (49 commits)
        mfd: cgbc-core: Add support for conga-SA8
        dt-bindings: mfd: syscon: Add microchip,sama7d65-sfrbu
        dt-bindings: mfd: syscon: Add microchip,sama7d65-ddr3phy
        mfd: cgbc: Add support for HWMON
        dt-bindings: mfd: syscon: Add the pbus-csr node for Airoha EN7581 SoC
        mfd: cgbc-core: Cleanup signedness in cgbc_session_request()
        mfd: pcf50633: Remove remaining PCF50633 support
        mfd: pcf50633: Remove unused platform IRQ code
        mfd: pcF50633-gpio: Remove unused driver
        mfd: pcf50633-adc: Remove unused driver
        mfd: qnap-mcu: Convert commas to semicolons in qnap_mcu_exec()
        mfd: mt6397-core: Add mfd_cell for mt6359-accdet
        dt-bindings: mfd: syscon: Add rk3528 QoS register compatible
        dt-bindings: mfd: atmel,sama5d2-flexcom: Add microchip,sama7d65-flexcom
        mfd: ezx-pcap: Remove unused pcap_adc_sync
        mfd: db8500-prcmu: Remove needless return in three void APIs
        mfd: Remove STA2x11 core driver
        mfd: max77620: Allow building as a module
        mfd: ene-kb3930: Fix a potential NULL pointer dereference
        dt-bindings: mfd: qcom,tcsr: Add compatible for MSM8937
        ...
      dcab75a3
    • Linus Torvalds's avatar
      Merge tag 'regmap-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 054b7477
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "Only a couple of small patches this release, one refactoring struct
        regmap to pack it more efficiently and another which makes our way of
        setting all bits consistent in the regmap-irq code"
      
      * tag 'regmap-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: irq: Use one way of setting all bits in the register
        regmap: Reorder 'struct regmap'
      054b7477
    • Linus Torvalds's avatar
      Merge tag 'parisc-for-6.15-rc1' of... · 883ab4e4
      Linus Torvalds authored
      Merge tag 'parisc-for-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
      
      Pull parisc updates from Helge Deller:
      
       - drop parisc specific memcpy_fromio() function
      
       - clean up coding style and fix compile warnings
      
      * tag 'parisc-for-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: led: Use scnprintf() to avoid string truncation warning
        Input: gscps2 - Describe missing function parameters
        parisc: perf: use named initializers for struct miscdevice
        parisc: PDT: Fix missing prototype warning
        parisc: Remove memcpy_fromio
        parisc: Fix formatting errors in io.c
      883ab4e4
    • Linus Torvalds's avatar
      Merge tag 'mips_6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 1c83601b
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - Add support for multi-cluster configuration
      
       - Add quirks for enabling multi-cluster mode on EyeQ6
      
       - Add DTS clocks for ralink
      
       - Cleanup realtek DTS
      
       - Other cleanups and fixes
      
      * tag 'mips_6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (35 commits)
        MIPS: config: omega2+, vocore2: enable CLK_MTMIPS
        arch: mips: defconfig: Drop obsolete CONFIG_NET_CLS_TCINDEX
        MIPS: cm: Fix warning if MIPS_CM is disabled
        MIPS: Fix Macro name
        MIPS: ds1287: Match ds1287_set_base_clock() function types
        MIPS: cevt-ds1287: Add missing ds1287.h include
        MIPS: dec: Declare which_prom() as static
        MIPS: Loongson2ef: Replace deprecated strncpy() with strscpy()
        mips: dts: ralink: mt7628a: update system controller node and its consumers
        mips: dts: ralink: mt7620a: update system controller node and its consumers
        mips: dts: ralink: rt3883: update system controller node and its consumers
        mips: dts: ralink: rt3050: update system controller node and its consumers
        mips: dts: ralink: rt2880: update system controller node and its consumers
        dt-bindings: clock: add clock definitions for Ralink SoCs
        MIPS: Use arch specific syscall name match function
        mips: dts: realtek: Add restart to Cisco SG220-26P
        mips: dts: realtek: Add RTL838x SoC peripherals
        mips: dts: realtek: Replace uart clock property
        mips: dts: realtek: Correct uart interrupt-parent
        mips: dts: realtek: Add SoC IRQ node for RTL838x
        ...
      1c83601b
    • Linus Torvalds's avatar
      Merge tag 's390-6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · f90f2145
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Add sorting of mcount locations at build time
      
       - Rework uaccess functions with C exception handling to shorten inline
         assembly size and enable full inlining. This yields near-optimal code
         for small constant copies with a ~40kb kernel size increase
      
       - Add support for a configurable STRICT_MM_TYPECHECKS which allows to
         generate better code, but also allows to have type checking for debug
         builds
      
       - Optimize get_lowcore() for common callers with alternatives that
         nearly revert to the pre-relocated lowcore code, while also slightly
         reducing syscall entry and exit time
      
       - Convert MACHINE_HAS_* checks for single facility tests into cpu_has_*
         style macros that call test_facility(), and for features with
         additional conditions, add a new ALT_TYPE_FEATURE alternative to
         provide a static branch via alternative patching. Also, move machine
         feature detection to the decompressor for early patching and add
         debugging functionality to easily show which alternatives are patched
      
       - Add exception table support to early boot / startup code to get rid
         of the open coded exception handling
      
       - Use asm_inline for all inline assemblies with EX_TABLE or ALTERNATIVE
         to ensure correct inlining and unrolling decisions
      
       - Remove 2k page table leftovers now that s390 has been switched to
         always allocate 4k page tables
      
       - Split kfence pool into 4k mappings in arch_kfence_init_pool() and
         remove the architecture-specific kfence_split_mapping()
      
       - Use READ_ONCE_NOCHECK() in regs_get_kernel_stack_nth() to silence
         spurious KASAN warnings from opportunistic ftrace argument tracing
      
       - Force __atomic_add_const() variants on s390 to always return void,
         ensuring compile errors for improper usage
      
       - Remove s390's ioremap_wt() and pgprot_writethrough() due to
         mismatched semantics and lack of known users, relying on asm-generic
         fallbacks
      
       - Signal eventfd in vfio-ap to notify userspace when the guest AP
         configuration changes, including during mdev removal
      
       - Convert mdev_types from an array to a pointer in vfio-ccw and vfio-ap
         drivers to avoid fake flex array confusion
      
       - Cleanup trap code
      
       - Remove references to the outdated linux390@de.ibm.com address
      
       - Other various small fixes and improvements all over the code
      
      * tag 's390-6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (78 commits)
        s390: Use inline qualifier for all EX_TABLE and ALTERNATIVE inline assemblies
        s390/kfence: Split kfence pool into 4k mappings in arch_kfence_init_pool()
        s390/ptrace: Avoid KASAN false positives in regs_get_kernel_stack_nth()
        s390/boot: Ignore vmlinux.map
        s390/sysctl: Remove "vm/allocate_pgste" sysctl
        s390: Remove 2k vs 4k page table leftovers
        s390/tlb: Use mm_has_pgste() instead of mm_alloc_pgste()
        s390/lowcore: Use lghi instead llilh to clear register
        s390/syscall: Merge __do_syscall() and do_syscall()
        s390/spinlock: Implement SPINLOCK_LOCKVAL with inline assembly
        s390/smp: Implement raw_smp_processor_id() with inline assembly
        s390/current: Implement current with inline assembly
        s390/lowcore: Use inline qualifier for get_lowcore() inline assembly
        s390: Move s390 sysctls into their own file under arch/s390
        s390/syscall: Simplify syscall_get_arguments()
        s390/vfio-ap: Notify userspace that guest's AP config changed when mdev removed
        s390: Remove ioremap_wt() and pgprot_writethrough()
        s390/mm: Add configurable STRICT_MM_TYPECHECKS
        s390/mm: Convert pgste_val() into function
        s390/mm: Convert pgprot_val() into function
        ...
      f90f2145
    • Linus Torvalds's avatar
      Merge tag 'efi-next-for-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 1fa753c7
      Linus Torvalds authored
      Pull EFI updates from Ard Biesheuvel:
      
       - Decouple mixed mode startup code from the traditional x86
         decompressor
      
       - Revert zero-length file hack in efivarfs
      
       - Prevent EFI zboot from using the CopyMem/SetMem boot services after
         ExitBootServices()
      
       - Update EFI zboot to use the ZLIB/ZSTD library interfaces directly
      
      * tag 'efi-next-for-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efi/libstub: Avoid legacy decompressor zlib/zstd wrappers
        efi/libstub: Avoid CopyMem/SetMem EFI services after ExitBootServices
        efi: efibc: change kmalloc(size * count, ...) to kmalloc_array()
        efivarfs: Revert "allow creation of zero length files"
        x86/efi/mixed: Move mixed mode startup code into libstub
        x86/efi/mixed: Simplify and document thunking logic
        x86/efi/mixed: Remove dependency on legacy startup_32 code
        x86/efi/mixed: Set up 1:1 mapping of lower 4GiB in the stub
        x86/efi/mixed: Factor out and clean up long mode entry
        x86/efi/mixed: Check CPU compatibility without relying on verify_cpu()
        x86/efistub: Merge PE and handover entrypoints
      1fa753c7
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 3b9ea5b5
      Linus Torvalds authored
      Pull devicetree updates from Rob Herring:
       "DT core:
      
         - Fix ref counting errors in interrupt parsing code
      
         - Allow "nonposted-mmio" property per device and on non-Apple h/w
      
         - Use typed accessors in platform driver code
      
         - Fix mismatch between DT MAX_PHANDLE_ARGS and
           NR_FWNODE_REFERENCE_ARGS and increase the maximum number args
      
         - Rework of_resolve_phandles() to use __free() cleanup and fix ref
           count error
      
         - Use of_prop_cmp() in a few more places
      
         - Improve make_fit.py script error handling
      
        DT bindings:
      
         - Update DT property ordering rules for properties within groups
           (i.e. common suffix)
      
         - Update DT submitting-patches doc to cover sending .dts patches and
           SoC maintainer rules on being warning free against linux-next
      
         - Add ti,tps53681, ti,tps53681, Maxim max15301, max15303, and
           max20751 to trivial devices
      
         - Add Renesas RZ/V2H(P) and Allwinner H616 support to Arm Mali
           Bifrost GPU. Add Samsung exynos7870 support to Arm Mail Midgard.
      
         - Rework qcom,ebi2 and samsung,exynos4210-sram memory controller
           bindings to split child node properties. Fix the LAN9115 binding to
           use the child node schema so all properties are documented.
      
         - Convert nxp,lpc3220-mic and Altera ECC manager bindings to schema
      
         - Fix some issues with LVDS display panels causing validation
           warnings
      
         - Drop some obsolete parts of Xilinx bindings"
      
      * tag 'devicetree-for-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (48 commits)
        scripts/make_fit: Print DT name before libfdt errors
        dt-bindings: edac: altera: socfpga: Convert to YAML
        dt-bindings: pps: gpio: Correct indentation and style in DTS example
        media: dt-bindings: mediatek,vcodec-encoder: Drop assigned-clock properties
        of: address: Allow to specify nonposted-mmio per-device
        of: address: Expand nonposted-mmio to non-Apple Silicon platforms
        docs: dt-bindings: Specify ordering for properties within groups
        dt-bindings: gpu: arm,mali-midgard: add exynos7870-mali compatible
        of: Move of_prop_val_eq() next to the single user
        of/platform: Use typed accessors rather than of_get_property()
        dt-bindings: trivial-devices: Add Maxim max15301, max15303, and max20751
        dt-bindings: fsi: ibm,p9-scom: Add "ibm,fsi2pib" compatible
        dt-bindings: memory-controllers: qcom,ebi2: Enforce child props
        dt-bindings: memory-controllers: samsung,exynos4210-srom: Enforce child props
        dt-bindings: display: mitsubishi,aa104xd12: Adjust allowed and required properties
        dt-bindings: display: mitsubishi,aa104xd12: Allow jeida-18 for data-mapping
        dt-bindings: interrupt-controller: Convert nxp,lpc3220-mic.txt to yaml format
        docs: process: maintainer-soc-clean-dts: linux-next is decisive
        docs: dt: submitting-patches: Document sending DTS patches
        of: Align macro MAX_PHANDLE_ARGS with NR_FWNODE_REFERENCE_ARGS
        ...
      3b9ea5b5
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 092e3350
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
      
       - Usual minor updates and fixes for bnxt_re, hfi1, rxe, mana, iser,
         mlx5, vmw_pvrdma, hns
      
       - Make rxe work on tun devices
      
       - mana gains more standard verbs as it moves toward supporting
         in-kernel verbs
      
       - DMABUF support for mana
      
       - Fix page size calculations when memory registration exceeds 4G
      
       - On Demand Paging support for rxe
      
       - mlx5 support for RDMA TRANSPORT flow tables and a new ucap mechanism
         to access control use of them
      
       - Optional RDMA_TX/RX counters per QP in mlx5
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (73 commits)
        IB/mad: Check available slots before posting receive WRs
        RDMA/mana_ib: Fix integer overflow during queue creation
        RDMA/mlx5: Fix calculation of total invalidated pages
        RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow
        RDMA/mlx5: Fix page_size variable overflow
        RDMA/mlx5: Drop access_flags from _mlx5_mr_cache_alloc()
        RDMA/mlx5: Fix cache entry update on dereg error
        RDMA/mlx5: Fix MR cache initialization error flow
        RDMA/mlx5: Support optional-counters binding for QPs
        RDMA/mlx5: Compile fs.c regardless of INFINIBAND_USER_ACCESS config
        RDMA/core: Pass port to counter bind/unbind operations
        RDMA/core: Add support to optional-counters binding configuration
        RDMA/core: Create and destroy rdma_counter using rdma_zalloc_drv_obj()
        RDMA/mlx5: Add optional counters for RDMA_TX/RX_packets/bytes
        RDMA/core: Fix use-after-free when rename device name
        RDMA/bnxt_re: Support perf management counters
        RDMA/rxe: Fix incorrect return value of rxe_odp_atomic_op()
        RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject()
        RDMA/mana_ib: Handle net event for pointing to the current netdev
        net: mana: Change the function signature of mana_get_primary_netdev_rcu
        ...
      092e3350
    • Linus Torvalds's avatar
      Merge tag 'for-linus-fwctl' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 0ccff074
      Linus Torvalds authored
      Pull fwctl subsystem from Jason Gunthorpe:
       "fwctl is a new subsystem intended to bring some common rules and order
        to the growing pattern of exposing a secure FW interface directly to
        userspace.
      
        Unlike existing places like RDMA/DRM/VFIO/uacce that are exposing a
        device for datapath operations fwctl is focused on debugging,
        configuration and provisioning of the device. It will not have the
        necessary features like interrupt delivery to support a datapath.
      
        This concept is similar to the long standing practice in the "HW" RAID
        space of having a device specific misc device to manage the RAID
        controller FW. fwctl generalizes this notion of a companion debug and
        management interface that goes along with a dataplane implemented in
        an appropriate subsystem.
      
        There have been three LWN articles written discussing various aspects
        of this:
      
      	https://lwn.net/Articles/955001/
      	https://lwn.net/Articles/969383/
      	https://lwn.net/Articles/990802/
      
        This includes three drivers to launch the subsystem:
      
         - CXL provides a vendor scheme for executing commands and a way to
           learn the 'command effects' (ie the security properties) of such
           commands. The fwctl driver allows access to these mechanism within
           the fwctl security model
      
         - mlx5 is family of networking products, the driver supports all
           current Mellanox HW still receiving FW feature updates. This
           includes RDMA multiprotocol NICs like ConnectX and the Bluefield
           family of Smart NICs.
      
         - AMD/Pensando Distributed Services card is a multi protocol Smart
           NIC with a multi PCI function design. fwctl works on the management
           PCI function following a 'command effects' model similar to CXL"
      
      * tag 'for-linus-fwctl' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (30 commits)
        pds_fwctl: add Documentation entries
        pds_fwctl: add rpc and query support
        pds_fwctl: initial driver framework
        pds_core: add new fwctl auxiliary_device
        pds_core: specify auxiliary_device to be created
        pds_core: make pdsc_auxbus_dev_del() void
        cxl: Fixup kdoc issues for include/cxl/features.h
        fwctl/cxl: Add documentation to FWCTL CXL
        cxl/test: Add Set Feature support to cxl_test
        cxl/test: Add Get Feature support to cxl_test
        cxl: Add support to handle user feature commands for set feature
        cxl: Add support to handle user feature commands for get feature
        cxl: Add support for fwctl RPC command to enable CXL feature commands
        cxl: Move cxl feature command structs to user header
        cxl: Add FWCTL support to CXL
        mlx5: Create an auxiliary device for fwctl_mlx5
        fwctl/mlx5: Support for communicating with mlx5 fw
        fwctl: Add documentation
        fwctl: FWCTL_RPC to execute a Remote Procedure Call to device firmware
        taint: Add TAINT_FWCTL
        ...
      0ccff074
    • Linus Torvalds's avatar
      Merge tag 'v6.15-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · e5e0e6be
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Remove legacy compression interface
         - Improve scatterwalk API
         - Add request chaining to ahash and acomp
         - Add virtual address support to ahash and acomp
         - Add folio support to acomp
         - Remove NULL dst support from acomp
      
        Algorithms:
         - Library options are fuly hidden (selected by kernel users only)
         - Add Kerberos5 algorithms
         - Add VAES-based ctr(aes) on x86
         - Ensure LZO respects output buffer length on compression
         - Remove obsolete SIMD fallback code path from arm/ghash-ce
      
        Drivers:
         - Add support for PCI device 0x1134 in ccp
         - Add support for rk3588's standalone TRNG in rockchip
         - Add Inside Secure SafeXcel EIP-93 crypto engine support in eip93
         - Fix bugs in tegra uncovered by multi-threaded self-test
         - Fix corner cases in hisilicon/sec2
      
        Others:
         - Add SG_MITER_LOCAL to sg miter
         - Convert ubifs, hibernate and xfrm_ipcomp from legacy API to acomp"
      
      * tag 'v6.15-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (187 commits)
        crypto: testmgr - Add multibuffer acomp testing
        crypto: acomp - Fix synchronous acomp chaining fallback
        crypto: testmgr - Add multibuffer hash testing
        crypto: hash - Fix synchronous ahash chaining fallback
        crypto: arm/ghash-ce - Remove SIMD fallback code path
        crypto: essiv - Replace memcpy() + NUL-termination with strscpy()
        crypto: api - Call crypto_alg_put in crypto_unregister_alg
        crypto: scompress - Fix incorrect stream freeing
        crypto: lib/chacha - remove unused arch-specific init support
        crypto: remove obsolete 'comp' compression API
        crypto: compress_null - drop obsolete 'comp' implementation
        crypto: cavium/zip - drop obsolete 'comp' implementation
        crypto: zstd - drop obsolete 'comp' implementation
        crypto: lzo - drop obsolete 'comp' implementation
        crypto: lzo-rle - drop obsolete 'comp' implementation
        crypto: lz4hc - drop obsolete 'comp' implementation
        crypto: lz4 - drop obsolete 'comp' implementation
        crypto: deflate - drop obsolete 'comp' implementation
        crypto: 842 - drop obsolete 'comp' implementation
        crypto: nx - Migrate to scomp API
        ...
      e5e0e6be
    • Yosry Ahmed's avatar
      mm: zswap: fix crypto_free_acomp() deadlock in zswap_cpu_comp_dead() · 81574325
      Yosry Ahmed authored
      Currently, zswap_cpu_comp_dead() calls crypto_free_acomp() while holding
      the per-CPU acomp_ctx mutex.  crypto_free_acomp() then holds scomp_lock
      (through crypto_exit_scomp_ops_async()).
      
      On the other hand, crypto_alloc_acomp_node() holds the scomp_lock (through
      crypto_scomp_init_tfm()), and then allocates memory.  If the allocation
      results in reclaim, we may attempt to hold the per-CPU acomp_ctx mutex.
      
      The above dependencies can cause an ABBA deadlock.  For example in the
      following scenario:
      
      (1) Task A running on CPU #1:
          crypto_alloc_acomp_node()
            Holds scomp_lock
            Enters reclaim
            Reads per_cpu_ptr(pool->acomp_ctx, 1)
      
      (2) Task A is descheduled
      
      (3) CPU #1 goes offline
          zswap_cpu_comp_dead(CPU #1)
            Holds per_cpu_ptr(pool->acomp_ctx, 1))
            Calls crypto_free_acomp()
            Waits for scomp_lock
      
      (4) Task A running on CPU #2:
            Waits for per_cpu_ptr(pool->acomp_ctx, 1) // Read on CPU #1
            DEADLOCK
      
      Since there is no requirement to call crypto_free_acomp() with the per-CPU
      acomp_ctx mutex held in zswap_cpu_comp_dead(), move it after the mutex is
      unlocked.  Also move the acomp_request_free() and kfree() calls for
      consistency and to avoid any potential sublte locking dependencies in the
      future.
      
      With this, only setting acomp_ctx fields to NULL occurs with the mutex
      held.  This is similar to how zswap_cpu_comp_prepare() only initializes
      acomp_ctx fields with the mutex held, after performing all allocations
      before holding the mutex.
      
      Opportunistically, move the NULL check on acomp_ctx so that it takes place
      before the mutex dereference.
      
      Link: https://lkml.kernel.org/r/20250226185625.2672936-1-yosry.ahmed@linux.dev
      
      
      Fixes: 12dcb0ef ("mm: zswap: properly synchronize freeing resources during CPU hotunplug")
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Co-developed-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarYosry Ahmed <yosry.ahmed@linux.dev>
      Reported-by: default avatar <syzbot+1a517ccfcbc6a7ab0f82@syzkaller.appspotmail.com>
      Closes: https://lore.kernel.org/all/67bcea51.050a0220.bbfd1.0096.GAE@google.com/
      
      
      Acked-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Reviewed-by: default avatarChengming Zhou <chengming.zhou@linux.dev>
      Reviewed-by: default avatarNhat Pham <nphamcs@gmail.com>
      Tested-by: default avatarNhat Pham <nphamcs@gmail.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Eric Biggers <ebiggers@kernel.org>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Chris Murphy <lists@colorremedies.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      81574325
    • Marc Herbert's avatar
      mm/hugetlb: move hugetlb_sysctl_init() to the __init section · 36ac9b9e
      Marc Herbert authored
      hugetlb_sysctl_init() is only invoked once by an __init function and is
      merely a wrapper around another __init function so there is not reason to
      keep it.
      
      Fixes the following warning when toning down some GCC inline options:
      
       WARNING: modpost: vmlinux: section mismatch in reference:
         hugetlb_sysctl_init+0x1b (section: .text) ->
           __register_sysctl_init (section: .init.text)
      
      Link: https://lkml.kernel.org/r/20250319060041.2737320-1-marc.herbert@linux.intel.com
      
      
      Signed-off-by: default avatarMarc Herbert <Marc.Herbert@linux.intel.com>
      Reviewed-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
      Reviewed-by: default avatarMuchun Song <muchun.song@linux.dev>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      36ac9b9e
    • Liu Shixin's avatar
      mm: page_isolation: avoid calling folio_hstate() without hugetlb_lock · b1862ac9
      Liu Shixin authored
      I found a NULL pointer dereference as followed:
      
       BUG: kernel NULL pointer dereference, address: 0000000000000028
       #PF: supervisor read access in kernel mode
       #PF: error_code(0x0000) - not-present page
       PGD 0 P4D 0
       Oops: Oops: 0000 [#1] SMP PTI
       CPU: 5 UID: 0 PID: 5964 Comm: sh Kdump: loaded Not tainted 6.13.0-dirty #20
       Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.
       RIP: 0010:has_unmovable_pages+0x184/0x360
       ...
       Call Trace:
        <TASK>
        set_migratetype_isolate+0xd1/0x180
        start_isolate_page_range+0xd2/0x170
        alloc_contig_range_noprof+0x101/0x660
        alloc_contig_pages_noprof+0x238/0x290
        alloc_gigantic_folio.isra.0+0xb6/0x1f0
        only_alloc_fresh_hugetlb_folio.isra.0+0xf/0x60
        alloc_pool_huge_folio+0x80/0xf0
        set_max_huge_pages+0x211/0x490
        __nr_hugepages_store_common+0x5f/0xe0
        nr_hugepages_store+0x77/0x80
        kernfs_fop_write_iter+0x118/0x200
        vfs_write+0x23c/0x3f0
        ksys_write+0x62/0xe0
        do_syscall_64+0x5b/0x170
        entry_SYSCALL_64_after_hwframe+0x76/0x7e
      
      As has_unmovable_pages() call folio_hstate() without hugetlb_lock, there
      is a race to free the HugeTLB page between PageHuge() and folio_hstate(). 
      There is no need to add hugetlb_lock here as the HugeTLB page can be freed
      in lot of places.  So it's enough to unfold folio_hstate() and add a check
      to avoid NULL pointer dereference for hugepage_migration_supported().
      
      Link: https://lkml.kernel.org/r/20250122061151.578768-1-liushixin2@huawei.com
      
      
      Fixes: 464c7ffb ("mm/hugetlb: filter out hugetlb pages if HUGEPAGE migration is not supported.")
      Signed-off-by: default avatarLiu Shixin <liushixin2@huawei.com>
      Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
      Acked-by: default avatarZi Yan <ziy@nvidia.com>
      Reviewed-by: default avatarOscar Salvador <osalvador@suse.de>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
      Cc: Kirill A. Shuemov <kirill.shutemov@linux.intel.com>
      Cc: Muchun Song <muchun.song@linux.dev>
      Cc: Nanyong Sun <sunnanyong@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      b1862ac9
    • Yu Zhao's avatar
      mm/hugetlb_vmemmap: fix memory loads ordering · b94240be
      Yu Zhao authored
      Using x86_64 as an example, for a 32KB struct page[] area describing a 2MB
      hugeTLB, HVO reduces the area to 4KB by the following steps:
      
      1. Split the (r/w vmemmap) PMD mapping the area into 512 (r/w) PTEs;
      2. For the 8 PTEs mapping the area, remap PTE 1-7 to the page mapped
         by PTE 0, and at the same time change the permission from r/w to
         r/o;
      3. Free the pages PTE 1-7 used to map, hence the reduction from 32KB
         to 4KB.
      
      However, the following race can happen due to improperly memory loads
      ordering:
        CPU 1 (HVO)                     CPU 2 (speculative PFN walker)
      
        page_ref_freeze()
        synchronize_rcu()
                                        rcu_read_lock()
                                        page_is_fake_head() is false
        vmemmap_remap_pte()
        XXX: struct page[] becomes r/o
      
        page_ref_unfreeze()
                                        page_ref_count() is not zero
      
                                        atomic_add_unless(&page->_refcount)
                                        XXX: try to modify r/o struct page[]
      
      Specifically, page_is_fake_head() must be ordered after page_ref_count()
      on CPU 2 so that it can only return true for this case, to avoid the later
      attempt to modify r/o struct page[].
      
      This patch adds the missing memory barrier and makes the tests on
      page_is_fake_head() and page_ref_count() done in the proper order.
      
      Link: https://lkml.kernel.org/r/20250108074822.722696-1-yuzhao@google.com
      
      
      Fixes: bd225530 ("mm/hugetlb_vmemmap: fix race with speculative PFN walkers")
      Signed-off-by: default avatarYu Zhao <yuzhao@google.com>
      Reported-by: default avatarWill Deacon <will@kernel.org>
      Closes: https://lore.kernel.org/20241128142028.GA3506@willie-the-truck/
      
      
      Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
      Reviewed-by: default avatarMuchun Song <muchun.song@linux.dev>
      Acked-by: default avatarWill Deacon <will@kernel.org>
      Cc: Mateusz Guzik <mjguzik@gmail.com>
      Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      b94240be
    • Jinjiang Tu's avatar
      mm/contig_alloc: fix alloc_contig_range when __GFP_COMP and order < MAX_ORDER · 72025bc1
      Jinjiang Tu authored
      When calling alloc_contig_range() with __GFP_COMP and the order of
      requested pfn range is pageblock_order, less than MAX_ORDER, I triggered
      WARNING as follows:
      
       PFN range: requested [2150105088, 2150105600), allocated [2150105088, 2150106112)
       WARNING: CPU: 3 PID: 580 at mm/page_alloc.c:6877 alloc_contig_range+0x280/0x340
      
      alloc_contig_range() marks pageblocks of the requested pfn range to be
      isolated, migrate these pages if they are in use and will be freed to
      MIGRATE_ISOLATED freelist.
      
      Suppose two alloc_contig_range() calls at the same time and the requested
      pfn range are [0x80280000, 0x80280200) and [0x80280200, 0x80280400)
      respectively.  Suppose the two memory range are in use, then
      alloc_contig_range() will migrate and free these pages to MIGRATE_ISOLATED
      freelist.  __free_one_page() will merge MIGRATE_ISOLATE buddy to larger
      buddy, resulting in a MAX_ORDER buddy.  Finally, find_large_buddy() in
      alloc_contig_range() returns a MAX_ORDER buddy and results in WARNING.
      
      To fix it, call free_contig_range() to free the excess pfn range.
      
      Link: https://lkml.kernel.org/r/20250312084705.2938220-1-tujinjiang@huawei.com
      
      
      Fixes: e98337d1 ("mm/contig_alloc: support __GFP_COMP")
      Signed-off-by: default avatarJinjiang Tu <tujinjiang@huawei.com>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
      Cc: Nanyong Sun <sunnanyong@huawei.com>
      Cc: Yu Zhao <yuzhao@google.com>
      Cc: Zi Yan <ziy@nvidia.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      72025bc1
    • Peter Xu's avatar
      mm/userfaultfd: fix release hang over concurrent GUP · 3419b066
      Peter Xu authored
      This patch should fix a possible userfaultfd release() hang during
      concurrent GUP.
      
      This problem was initially reported by Dimitris Siakavaras in July 2023
      [1] in a firecracker use case.  Firecracker has a separate process
      handling page faults remotely, and when the process releases the
      userfaultfd it can race with a concurrent GUP from KVM trying to fault in
      a guest page during the secondary MMU page fault process.
      
      A similar problem was reported recently again by Jinjiang Tu in March 2025
      [2], even though the race happened this time with a mlockall() operation,
      which does GUP in a similar fashion.
      
      In 2017, commit 656710a6 ("userfaultfd: non-cooperative: closing the
      uffd without triggering SIGBUS") was trying to fix this issue.  AFAIU,
      that fixes well the fault paths but may not work yet for GUP.  In GUP, the
      issue is NOPAGE will be almost treated the same as "page fault resolved"
      in faultin_page(), then the GUP will follow page again, seeing page
      missing, and it'll keep going into a live lock situation as reported.
      
      This change makes core mm return RETRY instead of NOPAGE for both the GUP
      and fault paths, proactively releasing the mmap read lock.  This should
      guarantee the other release thread make progress on taking the write lock
      and avoid the live lock even for GUP.
      
      When at it, rearrange the comments to make sure it's uptodate.
      
      [1] https://lore.kernel.org/r/79375b71-db2e-3e66-346b-254c90d915e2@cslab.ece.ntua.gr
      [2] https://lore.kernel.org/r/20250307072133.3522652-1-tujinjiang@huawei.com
      
      Link: https://lkml.kernel.org/r/20250312145131.1143062-1-peterx@redhat.com
      
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Mike Rapoport (IBM) <rppt@kernel.org>
      Cc: Axel Rasmussen <axelrasmussen@google.com>
      Cc: Jinjiang Tu <tujinjiang@huawei.com>
      Cc: Dimitris Siakavaras <jimsiak@cslab.ece.ntua.gr>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      3419b066
    • Gwan-gyeong Mun's avatar
      x86/vmemmap: use direct-mapped VA instead of vmemmap-based VA · 586c6805
      Gwan-gyeong Mun authored
      Address an Oops issues when performing test of loading XE GPU driver
      module after applying the GPU SVM and Xe SVM patch series[1] and the Dept
      patch series[2].
      
      The issue occurs when loading the xe driver via modprobe [3], which adds a
      struct page for device memory via devm_memremap_pages().  When a process
      leads the addition of a struct page to vmemmap (e.g.  hot-plug), the page
      table update for the newly added vmemmap-based virtual address is updated
      first in init_mm's page table and then synchronized later.
      
      If the vmemmap-based virtual address is accessed through the process's
      page table before this sync, a page fault will occur.  This patch
      translates vmemmap-based virtual address to direct-mapped virtual address
      and use it, if the current top-level page table is not init_mm's page
      table when accessing a vmemmap-based virtual address before this sync.
      
      [1] https://lore.kernel.org/dri-devel/20250213021112.1228481-1-matthew.brost@intel.com/
      [2] https://lore.kernel.org/lkml/20240508094726.35754-1-byungchul@sk.com/
      [3]
      [   49.103630] xe 0000:00:04.0: [drm] Available VRAM: 0x0000000800000000, 0x00000002fb800000
      [   49.116710] BUG: unable to handle page fault for address: ffffeb3ff1200000
      [   49.117175] #PF: supervisor write access in kernel mode
      [   49.117511] #PF: error_code(0x0002) - not-present page
      [   49.117835] PGD 0 P4D 0 
      [   49.118015] Oops: Oops: 0002 [#1] PREEMPT SMP NOPTI
      [   49.118366] CPU: 3 UID: 0 PID: 302 Comm: modprobe Tainted: G        W          6.13.0-drm-tip-test+ #62
      [   49.118976] Tainted: [W]=WARN
      [   49.119179] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
      [   49.119710] RIP: 0010:vmemmap_set_pmd+0xff/0x230
      [   49.120011] Code: 77 22 02 a9 ff ff 1f 00 74 58 48 8b 3d 62 77 22 02 48 85 ff 0f 85 9a 00 00 00 48 8d 7d 08 48 89 e9 31 c0 48 89 ea 48 83 e7 f8 <48> c7 45 00 00 00 00 00 48 29 f9 48 c7 45 48 00 00 00 00 83 c1 50
      [   49.121158] RSP: 0018:ffffc900016d37a8 EFLAGS: 00010282
      [   49.121502] RAX: 0000000000000000 RBX: ffff888164000000 RCX: ffffeb3ff1200000
      [   49.121966] RDX: ffffeb3ff1200000 RSI: 80000000000001e3 RDI: ffffeb3ff1200008
      [   49.122499] RBP: ffffeb3ff1200000 R08: ffffeb3ff1280000 R09: 0000000000000000
      [   49.123032] R10: ffff88817b94dc48 R11: 0000000000000003 R12: ffffeb3ff1280000
      [   49.123566] R13: 0000000000000000 R14: ffff88817b94dc48 R15: 8000000163e001e3
      [   49.124096] FS:  00007f53ae71d740(0000) GS:ffff88843fd80000(0000) knlGS:0000000000000000
      [   49.124698] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   49.125129] CR2: ffffeb3ff1200000 CR3: 000000017c7d2000 CR4: 0000000000750ef0
      [   49.125662] PKRU: 55555554
      [   49.125880] Call Trace:
      [   49.126078]  <TASK>
      [   49.126252]  ? __die_body.cold+0x19/0x26
      [   49.126509]  ? page_fault_oops+0xa2/0x240
      [   49.126736]  ? preempt_count_add+0x47/0xa0
      [   49.126968]  ? search_module_extables+0x4a/0x80
      [   49.127224]  ? exc_page_fault+0x206/0x230
      [   49.127454]  ? asm_exc_page_fault+0x22/0x30
      [   49.127691]  ? vmemmap_set_pmd+0xff/0x230
      [   49.127919]  vmemmap_populate_hugepages+0x176/0x180
      [   49.128194]  vmemmap_populate+0x34/0x80
      [   49.128416]  __populate_section_memmap+0x41/0x90
      [   49.128676]  sparse_add_section+0x121/0x3e0
      [   49.128914]  __add_pages+0xba/0x150
      [   49.129116]  add_pages+0x1d/0x70
      [   49.129305]  memremap_pages+0x3dc/0x810
      [   49.129529]  devm_memremap_pages+0x1c/0x60
      [   49.129762]  xe_devm_add+0x8b/0x100 [xe]
      [   49.130072]  xe_tile_init_noalloc+0x6a/0x70 [xe]
      [   49.130408]  xe_device_probe+0x48c/0x740 [xe]
      [   49.130714]  ? __pfx___drmm_mutex_release+0x10/0x10
      [   49.130982]  ? __drmm_add_action+0x85/0xd0
      [   49.131208]  ? __pfx___drmm_mutex_release+0x10/0x10
      [   49.131478]  xe_pci_probe+0x7ef/0xd90 [xe]
      [   49.131777]  ? _raw_spin_unlock_irqrestore+0x66/0x90
      [   49.132049]  ? lockdep_hardirqs_on+0xba/0x140
      [   49.132290]  pci_device_probe+0x99/0x110
      [   49.132510]  really_probe+0xdb/0x340
      [   49.132710]  ? pm_runtime_barrier+0x50/0x90
      [   49.132941]  ? __pfx___driver_attach+0x10/0x10
      [   49.133190]  __driver_probe_device+0x78/0x110
      [   49.133433]  driver_probe_device+0x1f/0xa0
      [   49.133661]  __driver_attach+0xba/0x1c0
      [   49.133874]  bus_for_each_dev+0x7a/0xd0
      [   49.134089]  bus_add_driver+0x114/0x200
      [   49.134302]  driver_register+0x6e/0xc0
      [   49.134515]  xe_init+0x1e/0x50 [xe]
      [   49.134827]  ? __pfx_xe_init+0x10/0x10 [xe]
      [   49.134926] xe 0000:00:04.0: [drm:process_one_work] GT1: GuC CT safe-mode canceled
      [   49.135112]  do_one_initcall+0x5b/0x2b0
      [   49.135734]  ? rcu_is_watching+0xd/0x40
      [   49.135995]  ? __kmalloc_cache_noprof+0x231/0x310
      [   49.136315]  do_init_module+0x60/0x210
      [   49.136572]  init_module_from_file+0x86/0xc0
      [   49.136863]  idempotent_init_module+0x12b/0x340
      [   49.137156]  __x64_sys_finit_module+0x61/0xc0
      [   49.137437]  do_syscall_64+0x69/0x140
      [   49.137681]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
      [   49.137953] RIP: 0033:0x7f53ae1261fd
      [   49.138153] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d e3 fa 0c 00 f7 d8 64 89 01 48
      [   49.139117] RSP: 002b:00007ffd0e9021e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
      [   49.139525] RAX: ffffffffffffffda RBX: 000055c02951ee50 RCX: 00007f53ae1261fd
      [   49.139905] RDX: 0000000000000000 RSI: 000055bfff125478 RDI: 0000000000000010
      [   49.140282] RBP: 000055bfff125478 R08: 00007f53ae1f6b20 R09: 00007ffd0e902230
      [   49.140663] R10: 000055c029522000 R11: 0000000000000246 R12: 0000000000040000
      [   49.141040] R13: 000055c02951ef80 R14: 0000000000000000 R15: 000055c029521fc0
      [   49.141424]  </TASK>
      [   49.141552] Modules linked in: xe(+) drm_ttm_helper gpu_sched drm_suballoc_helper drm_gpuvm drm_exec drm_gpusvm i2c_algo_bit drm_buddy video wmi ttm drm_display_helper drm_kms_helper crct10dif_pclmul crc32_pclmul i2c_piix4 e1000 ghash_clmulni_intel i2c_smbus fuse
      [   49.142824] CR2: ffffeb3ff1200000
      [   49.143010] ---[ end trace 0000000000000000 ]---
      [   49.143268] RIP: 0010:vmemmap_set_pmd+0xff/0x230
      [   49.143523] Code: 77 22 02 a9 ff ff 1f 00 74 58 48 8b 3d 62 77 22 02 48 85 ff 0f 85 9a 00 00 00 48 8d 7d 08 48 89 e9 31 c0 48 89 ea 48 83 e7 f8 <48> c7 45 00 00 00 00 00 48 29 f9 48 c7 45 48 00 00 00 00 83 c1 50
      [   49.144489] RSP: 0018:ffffc900016d37a8 EFLAGS: 00010282
      [   49.144775] RAX: 0000000000000000 RBX: ffff888164000000 RCX: ffffeb3ff1200000
      [   49.145154] RDX: ffffeb3ff1200000 RSI: 80000000000001e3 RDI: ffffeb3ff1200008
      [   49.145536] RBP: ffffeb3ff1200000 R08: ffffeb3ff1280000 R09: 0000000000000000
      [   49.145914] R10: ffff88817b94dc48 R11: 0000000000000003 R12: ffffeb3ff1280000
      [   49.146292] R13: 0000000000000000 R14: ffff88817b94dc48 R15: 8000000163e001e3
      [   49.146671] FS:  00007f53ae71d740(0000) GS:ffff88843fd80000(0000) knlGS:0000000000000000
      [   49.147097] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   49.147407] CR2: ffffeb3ff1200000 CR3: 000000017c7d2000 CR4: 0000000000750ef0
      [   49.147786] PKRU: 55555554
      [   49.147941] note: modprobe[302] exited with irqs disabled
      
      When a process leads the addition of a struct page to vmemmap
      (e.g. hot-plug), the page table update for the newly added vmemmap-based
      virtual address is updated first in init_mm's page table and then
      synchronized later.
      If the vmemmap-based virtual address is accessed through the process's
      page table before this sync, a page fault will occur.
      
      This translates vmemmap-based virtual address to direct-mapped virtual
      address and use it, if the current top-level page table is not init_mm's
      page table when accessing a vmemmap-based virtual address before this sync.
      
      Link: https://lkml.kernel.org/r/20250217114133.400063-2-gwan-gyeong.mun@intel.com
      
      
      Fixes: faf1c000 ("x86/vmemmap: optimize for consecutive sections in partial populated PMDs")
      Signed-off-by: default avatarGwan-gyeong Mun <gwan-gyeong.mun@intel.com>
      Cc: Oscar Salvador <osalvador@suse.de>
      Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
      Cc: Byungchul Park <byungchul@sk.com>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      586c6805
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.15-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · 7d06015d
      Linus Torvalds authored
      Pull pci updates from Bjorn Helgaas:
       "Enumeration:
      
         - Enable Configuration RRS SV, which makes device readiness visible,
           early instead of during child bus scanning (Bjorn Helgaas)
      
         - Log debug messages about reset methods being used (Bjorn Helgaas)
      
         - Avoid reset when it has been disabled via sysfs (Nishanth
           Aravamudan)
      
         - Add common pci-ep-bus.yaml schema for exporting several peripherals
           of a single PCI function via devicetree (Andrea della Porta)
      
         - Create DT nodes for PCI host bridges to enable loading device tree
           overlays to create platform devices for PCI devices that have
           several features that require multiple drivers (Herve Codina)
      
        Resource management:
      
         - Enlarge devres table[] to accommodate bridge windows, ROM, IOV
           BARs, etc., and validate BAR index in devres interfaces (Philipp
           Stanner)
      
         - Fix typo that repeatedly distributed resources to a bridge instead
           of iterating over subordinate bridges, which resulted in too little
           space to assign some BARs (Kai-Heng Feng)
      
         - Relax bridge window tail sizing for optional resources, e.g., IOV
           BARs, to avoid failures when removing and re-adding devices (Ilpo
           Järvinen)
      
         - Allow drivers to enable devices even if we haven't assigned
           optional IOV resources to them (Ilpo Järvinen)
      
         - Rework handling of optional resources (IOV BARs, ROMs) to reduce
           failures if we can't allocate them (Ilpo Järvinen)
      
         - Fix a NULL dereference in the SR-IOV VF creation error path (Shay
           Drory)
      
         - Fix s390 mmio_read/write syscalls, which didn't cause page faults
           in some cases, which broke vfio-pci lazy mapping on first access
           (Niklas Schnelle)
      
         - Add pdev->non_mappable_bars to replace CONFIG_VFIO_PCI_MMAP, which
           was disabled only for s390 (Niklas Schnelle)
      
         - Support mmap of PCI resources on s390 except for ISM devices
           (Niklas Schnelle)
      
        ASPM:
      
         - Delay pcie_link_state deallocation to avoid dangling pointers that
           cause invalid references during hot-unplug (Daniel Stodden)
      
        Power management:
      
         - Allow PCI bridges to go to D3Hot when suspending on all non-x86
           systems (Manivannan Sadhasivam)
      
        Power control:
      
         - Create pwrctrl devices in pci_scan_device() to make it more
           symmetric with pci_pwrctrl_unregister() and make pwrctrl devices
           for PCI bridges possible (Manivannan Sadhasivam)
      
         - Unregister pwrctrl devices in pci_destroy_dev() so DOE, ASPM, etc.
           can still access devices after pci_stop_dev() (Manivannan
           Sadhasivam)
      
         - If there's a pwrctrl device for a PCI device, skip scanning it
           because the pwrctrl core will rescan the bus after the device is
           powered on (Manivannan Sadhasivam)
      
         - Add a pwrctrl driver for PCI slots based on voltage regulators
           described via devicetree (Manivannan Sadhasivam)
      
        Bandwidth control:
      
         - Add set_pcie_speed.sh to TEST_PROGS to fix issue when executing the
           set_pcie_cooling_state.sh test case (Yi Lai)
      
         - Avoid a NULL pointer dereference when we run out of bus numbers to
           assign for a bridge secondary bus (Lukas Wunner)
      
        Hotplug:
      
         - Drop superfluous pci_hotplug_slot_list, try_module_get() calls, and
           NULL pointer checks (Lukas Wunner)
      
         - Drop shpchp module init/exit logging, replace shpchp dbg() with
           ctrl_dbg(), and remove unused dbg(), err(), info(), warn() wrappers
           (Ilpo Järvinen)
      
         - Drop 'shpchp_debug' module parameter in favor of standard dynamic
           debugging (Ilpo Järvinen)
      
         - Drop unused cpcihp .get_power(), .set_power() function pointers
           (Guilherme Giacomo Simoes)
      
         - Disable hotplug interrupts in portdrv only when pciehp is not
           enabled to avoid issuing two hotplug commands too close together
           (Feng Tang)
      
         - Skip pciehp 'device replaced' check if the device has been removed
           to address a deadlock when resuming after a device was removed
           during system sleep (Lukas Wunner)
      
         - Don't enable pciehp hotplug interupt when resuming in poll mode
           (Ilpo Järvinen)
      
        Virtualization:
      
         - Fix bugs in 'pci=config_acs=' kernel command line parameter (Tushar
           Dave)
      
        DOE:
      
         - Expose supported DOE features via sysfs (Alistair Francis)
      
         - Allow DOE support to be enabled even if CXL isn't enabled (Alistair
           Francis)
      
        Endpoint framework:
      
         - Convert PCI device data so pci-epf-test works correctly on
           big-endian endpoint systems (Niklas Cassel)
      
         - Add BAR_RESIZABLE type to endpoint framework and add DWC core
           support for EPF drivers to set BAR_RESIZABLE type and size (Niklas
           Cassel)
      
         - Fix pci-epf-test double free that causes an oops if the host
           reboots and PERST# deassertion restarts endpoint BAR allocation
           (Christian Bruel)
      
         - Fix endpoint BAR testing so tests can skip disabled BARs instead of
           reporting them as failures (Niklas Cassel)
      
         - Widen endpoint test BAR size variable to accommodate BARs larger
           than INT_MAX (Niklas Cassel)
      
         - Remove unused tools 'pci' build target left over after moving tests
           to tools/testing/selftests/pci_endpoint (Jianfeng Liu)
      
        Altera PCIe controller driver:
      
         - Add DT binding and driver support for Agilex family (P-Tile,
           F-Tile, R-Tile) (Matthew Gerlach and D M, Sharath Kumar)
      
        AMD MDB PCIe controller driver:
      
         - Add DT binding and driver for AMD MDB (Multimedia DMA Bridge)
           (Thippeswamy Havalige)
      
        Broadcom STB PCIe controller driver:
      
         - Add BCM2712 MSI-X DT binding and interrupt controller drivers and
           add softdep on irq_bcm2712_mip driver to ensure that it is loaded
           first (Stanimir Varbanov)
      
         - Expand inbound window map to 64GB so it can accommodate BCM2712
           (Stanimir Varbanov)
      
         - Add BCM2712 support and DT updates (Stanimir Varbanov)
      
         - Apply link speed restriction before bringing link up, not after
           (Jim Quinlan)
      
         - Update Max Link Speed in Link Capabilities via the internal
           writable register, not the read-only config register (Jim Quinlan)
      
         - Handle regulator_bulk_get() error to avoid panic when we call
           regulator_bulk_free() later (Jim Quinlan)
      
         - Disable regulators only when removing the bus immediately below a
           Root Port because we don't support regulators deeper in the
           hierarchy (Jim Quinlan)
      
         - Make const read-only arrays static (Colin Ian King)
      
        Cadence PCIe endpoint driver:
      
         - Correct MSG TLP generation so endpoints can generate INTx messages
           (Hans Zhang)
      
        Freescale i.MX6 PCIe controller driver:
      
         - Identify the second controller on i.MX8MQ based on devicetree
           'linux,pci-domain' instead of DBI 'reg' address (Richard Zhu)
      
         - Remove imx_pcie_cpu_addr_fixup() since dwc core can now derive the
           ATU input address (using parent_bus_offset) from devicetree (Frank
           Li)
      
        Freescale Layerscape PCIe controller driver:
      
         - Drop deprecated 'num-ib-windows' and 'num-ob-windows' and
           unnecessary 'status' from example (Krzysztof Kozlowski)
      
         - Correct the syscon_regmap_lookup_by_phandle_args("fsl,pcie-scfg")
           arg_count to fix probe failure on LS1043A (Ioana Ciornei)
      
        HiSilicon STB PCIe controller driver:
      
         - Call phy_exit() to clean up if histb_pcie_probe() fails (Christophe
           JAILLET)
      
        Intel Gateway PCIe controller driver:
      
         - Remove intel_pcie_cpu_addr() since dwc core can now derive the ATU
           input address (using parent_bus_offset) from devicetree (Frank Li)
      
        Intel VMD host bridge driver:
      
         - Convert vmd_dev.cfg_lock from spinlock_t to raw_spinlock_t so
           pci_ops.read() will never sleep, even on PREEMPT_RT where
           spinlock_t becomes a sleepable lock, to avoid calling a sleeping
           function from invalid context (Ryo Takakura)
      
        MediaTek PCIe Gen3 controller driver:
      
         - Remove leftover mac_reset assert for Airoha EN7581 SoC (Lorenzo
           Bianconi)
      
         - Add EN7581 PBUS controller 'mediatek,pbus-csr' DT property and
           program host bridge memory aperture to this syscon node (Lorenzo
           Bianconi)
      
        Qualcomm PCIe controller driver:
      
         - Add qcom,pcie-ipq5332 binding (Varadarajan Narayanan)
      
         - Add qcom i.MX8QM and i.MX8QXP/DXP optional DMA interrupt (Alexander
           Stein)
      
         - Add optional dma-coherent DT property for Qualcomm SA8775P (Dmitry
           Baryshkov)
      
         - Make DT iommu property required for SA8775P and prohibited for
           SDX55 (Dmitry Baryshkov)
      
         - Add DT IOMMU and DMA-related properties for Qualcomm SM8450 (Dmitry
           Baryshkov)
      
         - Add endpoint DT properties for SAR2130P and enable endpoint mode in
           driver (Dmitry Baryshkov)
      
         - Describe endpoint BAR0 and BAR2 as 64-bit only and BAR1 and BAR3 as
           RESERVED (Manivannan Sadhasivam)
      
        Rockchip DesignWare PCIe controller driver:
      
         - Describe rk3568 and rk3588 BARs as Resizable, not Fixed (Niklas
           Cassel)
      
        Synopsys DesignWare PCIe controller driver:
      
         - Add debugfs-based Silicon Debug, Error Injection, Statistical
           Counter support for DWC (Shradha Todi)
      
         - Add debugfs property to expose LTSSM status of DWC PCIe link (Hans
           Zhang)
      
         - Add Rockchip support for DWC debugfs features (Niklas Cassel)
      
         - Add dw_pcie_parent_bus_offset() to look up the parent bus address
           of a specified 'reg' property and return the offset from the CPU
           physical address (Frank Li)
      
         - Use dw_pcie_parent_bus_offset() to derive CPU -> ATU addr offset
           via 'reg[config]' for host controllers and 'reg[addr_space]' for
           endpoint controllers (Frank Li)
      
         - Apply struct dw_pcie.parent_bus_offset in ATU users to remove use
           of .cpu_addr_fixup() when programming ATU (Frank Li)
      
        TI J721E PCIe driver:
      
         - Correct the 'link down' interrupt bit for J784S4 (Siddharth
           Vadapalli)
      
        TI Keystone PCIe controller driver:
      
         - Describe AM65x BARs 2 and 5 as Resizable (not Fixed) and reduce
           alignment requirement from 1MB to 64KB (Niklas Cassel)
      
        Xilinx Versal CPM PCIe controller driver:
      
         - Free IRQ domain in probe error path to avoid leaking it
           (Thippeswamy Havalige)
      
         - Add DT .compatible "xlnx,versal-cpm5nc-host" and driver support for
           Versal Net CPM5NC Root Port controller (Thippeswamy Havalige)
      
         - Add driver support for CPM5_HOST1 (Thippeswamy Havalige)
      
        Miscellaneous:
      
         - Convert fsl,mpc83xx-pcie binding to YAML (J. Neuschäfer)
      
         - Use for_each_available_child_of_node_scoped() to simplify apple,
           kirin, mediatek, mt7621, tegra drivers (Zhang Zekun)"
      
      * tag 'pci-v6.15-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (197 commits)
        PCI: layerscape: Fix arg_count to syscon_regmap_lookup_by_phandle_args()
        PCI: j721e: Fix the value of .linkdown_irq_regfield for J784S4
        misc: pci_endpoint_test: Add support for PCITEST_IRQ_TYPE_AUTO
        PCI: endpoint: pci-epf-test: Expose supported IRQ types in CAPS register
        PCI: dw-rockchip: Endpoint mode cannot raise INTx interrupts
        PCI: endpoint: Add intx_capable to epc_features struct
        dt-bindings: PCI: Add common schema for devices accessible through PCI BARs
        PCI: intel-gw: Remove intel_pcie_cpu_addr()
        PCI: imx6: Remove imx_pcie_cpu_addr_fixup()
        PCI: dwc: Use parent_bus_offset to remove need for .cpu_addr_fixup()
        PCI: dwc: ep: Ensure proper iteration over outbound map windows
        PCI: dwc: ep: Use devicetree 'reg[addr_space]' to derive CPU -> ATU addr offset
        PCI: dwc: ep: Consolidate devicetree handling in dw_pcie_ep_get_resources()
        PCI: dwc: ep: Call epc_create() early in dw_pcie_ep_init()
        PCI: dwc: Use devicetree 'reg[config]' to derive CPU -> ATU addr offset
        PCI: dwc: Add dw_pcie_parent_bus_offset() checking and debug
        PCI: dwc: Add dw_pcie_parent_bus_offset()
        PCI/bwctrl: Fix NULL pointer dereference on bus number exhaustion
        PCI: xilinx-cpm: Add cpm_csr register mapping for CPM5_HOST1 variant
        PCI: brcmstb: Make const read-only arrays static
        ...
      7d06015d
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2025-03-28' of https://gitlab.freedesktop.org/drm/kernel · 0c86b424
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "Outside of drm there are some rust patches from Danilo who maintains
        that area in here, and some pieces for drm header check tests.
      
        The major things in here are a new driver supporting the touchbar
        displays on M1/M2, the nova-core stub driver which is just the vehicle
        for adding rust abstractions and start developing a real driver inside
        of.
      
        xe adds support for SVM with a non-driver specific SVM core
        abstraction that will hopefully be useful for other drivers, along
        with support for shrinking for TTM devices. I'm sure xe and AMD
        support new devices, but the pipeline depth on these things is hard to
        know what they end up being in the marketplace!
      
        uapi:
         - add mediatek tiled fourcc
         - add support for notifying userspace on device wedged
      
        new driver:
         - appletbdrm: support for Apple Touchbar displays on m1/m2
         - nova-core: skeleton rust driver to develop nova inside off
      
        firmware:
         - add some rust firmware pieces
      
        rust:
         - add 'LocalModule' type alias
      
        component:
         - add helper to query bound status
      
        fbdev:
         - fbtft: remove access to page->index
      
        media:
         - cec: tda998x: import driver from drm
      
        dma-buf:
         - add fast path for single fence merging
      
        tests:
         - fix lockdep warnings
      
        atomic:
         - allow full modeset on connector changes
         - clarify semantics of allow_modeset and drm_atomic_helper_check
         - async-flip: support on arbitary planes
         - writeback: fix UAF
         - Document atomic-state history
      
        format-helper:
         - support ARGB8888 to ARGB4444 conversions
      
        buddy:
         - fix multi-root cleanup
      
        ci:
         - update IGT
      
        dp:
         - support extended wake timeout
         - mst: fix RAD to string conversion
         - increase DPCD eDP control CAP size to 5 bytes
         - add DPCD eDP v1.5 definition
         - add helpers for LTTPR transparent mode
      
        panic:
         - encode QR code according to Fido 2.2
      
        scheduler:
         - add parameter struct for init
         - improve job peek/pop operations
         - optimise drm_sched_job struct layout
      
        ttm:
         - refactor pool allocation
         - add helpers for TTM shrinker
      
        panel-orientation:
         - add a bunch of new quirks
      
        panel:
         - convert panels to multi-style functions
         - edp: Add support for B140UAN04.4, BOE NV140FHM-NZ, CSW MNB601LS1-3,
           LG LP079QX1-SP0V, MNE007QS3-7, STA 116QHD024002, Starry
           116KHD024006, Lenovo T14s Gen6 Snapdragon
         - himax-hx83102: Add support for CSOT PNA957QT1-1, Kingdisplay
           kd110n11-51ie, Starry 2082109qfh040022-50e
         - visionox-r66451: use multi-style MIPI-DSI functions
         - raydium-rm67200: Add driver for Raydium RM67200
         - simple: Add support for BOE AV123Z7M-N17, BOE AV123Z7M-N17
         - sony-td4353-jdi: Use MIPI-DSI multi-func interface
         - summit: Add driver for Apple Summit display panel
         - visionox-rm692e5: Add driver for Visionox RM692E5
      
        bridge:
         - pass full atomic state to various callbacks
         - adv7511: Report correct capabilities
         - it6505: Fix HDCP V compare
         - snd65dsi86: fix device IDs
         - nwl-dsi: set bridge type
         - ti-sn65si83: add error recovery and set bridge type
         - synopsys: add HDMI audio support
      
        xe:
         - support device-wedged event
         - add mmap support for PCI memory barrier
         - perf pmu integration and expose per-engien activity
         - add EU stall sampling support
         - GPU SVM and Xe SVM implementation
         - use TTM shrinker
         - add survivability mode to allow the driver to do firmware updates
           in critical failure states
         - PXP HWDRM support for MTL and LNL
         - expose package/vram temps over hwmon
         - enable DP tunneling
         - drop mmio_ext abstraction
         - Reject BO evcition if BO is bound to current VM
         - Xe suballocator improvements
         - re-use display vmas when possible
         - add GuC Buffer Cache abstraction
         - PCI ID update for Panther Lake and Battlemage
         - Enable SRIOV for Panther Lake
         - Refactor VRAM manager location
      
        i915:
         - enable extends wake timeout
         - support device-wedged event
         - Enable DP 128b/132b SST DSC
         - FBC dirty rectangle support for display version 30+
         - convert i915/xe to drm client setup
         - Compute HDMI PLLS for rates not in fixed tables
         - Allow DSB usage when PSR is enabled on LNL+
         - Enable panel replay without full modeset
         - Enable async flips with compressed buffers on ICL+
         - support luminance based brightness via DPCD for eDP
         - enable VRR enable/disable without full modeset
         - allow GuC SLPC default strategies on MTL+ for performance
         - lots of display refactoring in move to struct intel_display
      
        amdgpu:
         - add device wedged event
         - support async page flips on overlay planes
         - enable broadcast RGB drm property
         - add info ioctl for virt mode
         - OEM i2c support for RGB lights
         - GC 11.5.2 + 11.5.3 support
         - SDMA 6.1.3 support
         - NBIO 7.9.1 + 7.11.2 support
         - MMHUB 1.8.1 + 3.3.2 support
         - DCN 3.6.0 support
         - Add dynamic workload profile switching for GC 10-12
         - support larger VBIOS sizes
         - Mark gttsize parameters as deprecated
         - Initial JPEG queue resset support
      
        amdkfd:
         - add KFD per process flags for setting precision
         - sync pasid values between KGD and KFD
         - improve GTT/VRAM handling for APUs
         - fix user queue validation on GC7/8
         - SDMA queue reset support
      
        raedeon:
         - rs400 hyperz fix
      
        i2c:
         - td998x: drop platform_data, split driver into media and bridge
      
        ast:
         - transmitter chip detection refactoring
         - vbios display mode refactoring
         - astdp: fix connection status and filter unsupported modes
         - cursor handling refactoring
      
        imagination:
         - check job dependencies with sched helper
      
        ivpu:
         - improve command queue handling
         - use workqueue for IRQ handling
         - add support HW fault injection
         - locking fixes
      
        mgag200:
         - add support for G200eH5
      
        msm:
         - dpu: add concurrent writeback support for DPU 10.x+
         - use LTTPR helpers
         - GPU:
           - Fix obscure GMU suspend failure
           - Expose syncobj timeline support
           - Extend GPU devcoredump with pagetable info
           - a623 support
           - Fix a6xx gen1/gen2 indexed-register blocks in gpu snapshot /
             devcoredump
         - Display:
           - Add cpu-cfg interconnect paths on SM8560 and SM8650
           - Introduce KMS OMMU fault handler, causing devcoredump snapshot
           - Fixed error pointer dereference in msm_kms_init_aspace()
         - DPU:
           - Fix mode_changing handling
           - Add writeback support on SM6150 (QCS615)
           - Fix DSC programming in 1:1:1 topology
           - Reworked hardware resource allocation, moving it to the CRTC code
           - Enabled support for Concurrent WriteBack (CWB) on SM8650
           - Enabled CDM blocks on all relevant platforms
           - Reworked debugfs interface for BW/clocks debugging
           - Clear perf params before calculating bw
           - Support YUV formats on writeback
           - Fixed double inclusion
           - Fixed writeback in YUV formats when using cloned output, Dropped
             wb2_formats_rgb
           - Corrected dpu_crtc_check_mode_changed and struct dpu_encoder_virt
             kerneldocs
           - Fixed uninitialized variable in dpu_crtc_kickoff_clone_mode()
         - DSI:
           - DSC-related fixes
           - Rework clock programming
         - DSI PHY:
           - Fix 7nm (and lower) PHY programming
           - Add proper DT schema definitions for DSI PHY clocks
         - HDMI:
           - Rework the driver, enabling the use of the HDMI Connector
             framework
         - Bindings:
           - Added eDP PHY on SA8775P
      
        nouveau:
         - move drm_slave_encoder interface into driver
         - nvkm: refactor GSP RPC
         - use LTTPR helpers
      
        mediatek:
         - HDMI fixup and refinement
         - add MT8188 dsc compatible
         - MT8365 SoC support
      
        panthor:
         - Expose sizes of intenral BOs via fdinfo
         - Fix race between reset and suspend
         - Improve locking
      
        qaic:
         - Add support for AIC200
      
        renesas:
         - Fix limits in DT bindings
      
        rockchip:
         - support rk3562-mali
         - rk3576: Add HDMI support
         - vop2: Add new display modes on RK3588 HDMI0 up to 4K
         - Don't change HDMI reference clock rate
         - Fix DT bindings
         - analogix_dp: add eDP support
         - fix shutodnw
      
        solomon:
         - Set SPI device table to silence warnings
         - Fix pixel and scanline encoding
      
        v3d:
         - handle clock
      
        vc4:
         - Use drm_exec
         - Use dma-resv for wait-BO ioctl
         - Remove seqno infrastructure
      
        virtgpu:
         - Support partial mappings of GEM objects
         - Reserve VGA resources during initialization
         - Fix UAF in virtgpu_dma_buf_free_obj()
         - Add panic support
      
        vkms:
         - Switch to a managed modesetting pipeline
         - Add support for ARGB8888
         - fix UAf
      
        xlnx:
         - Set correct DMA segment size
         - use mutex guards
         - Fix error handling
         - Fix docs"
      
      * tag 'drm-next-2025-03-28' of https://gitlab.freedesktop.org/drm/kernel: (1762 commits)
        drm/amd/pm: Update feature list for smu_v13_0_6
        drm/amdgpu: Add parameter documentation for amdgpu_sync_fence
        drm/amdgpu/discovery: optionally use fw based ip discovery
        drm/amdgpu/discovery: use specific ip_discovery.bin for legacy asics
        drm/amdgpu/discovery: check ip_discovery fw file available
        drm/amd/pm: Remove unnecessay UQ10 to UINT conversion
        drm/amd/pm: Remove unnecessay UQ10 to UINT conversion
        drm/amdgpu/sdma_v4_4_2: update VM flush implementation for SDMA
        drm/amdgpu: Optimize VM invalidation engine allocation and synchronize GPU TLB flush
        drm/amd/amdgpu: Increase max rings to enable SDMA page ring
        drm/amdgpu: Decode deferred error type in gfx aca bank parser
        drm/amdgpu/gfx11: Add Cleaner Shader Support for GFX11.5 GPUs
        drm/amdgpu/mes: clean up SDMA HQD loop
        drm/amdgpu/mes: enable compute pipes across all MEC
        drm/amdgpu/mes: drop MES 10.x leftovers
        drm/amdgpu/mes: optimize compute loop handling
        drm/amdgpu/sdma: guilty tracking is per instance
        drm/amdgpu/sdma: fix engine reset handling
        drm/amdgpu: remove invalid usage of sched.ready
        drm/amdgpu: add cleaner shader trace point
        ...
      0c86b424
Loading