1. 15 May, 2024 21 commits
    • Andrii Nakryiko's avatar
      bpf: save extended inner map info for percpu array maps as well · 9ee98229
      Andrii Nakryiko authored
      ARRAY_OF_MAPS and HASH_OF_MAPS map types have special logic to save
      a few extra fields required for correct operations of ARRAY maps, when
      they are used as inner maps. PERCPU_ARRAY maps have similar
      requirements as they now support generating inline element lookup
      logic. So make sure that both classes of maps are handled correctly.
      Reported-by: default avatarJakub Kicinski <kuba@kernel.org>
      Fixes: db69718b ("bpf: inline bpf_map_lookup_elem() for PERCPU_ARRAY maps")
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Acked-by: default avatarKumar Kartikeya Dwivedi <memxor@gmail.com>
      Link: https://lore.kernel.org/r/20240515062440.846086-1-andrii@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      9ee98229
    • Puranjay Mohan's avatar
      MAINTAINERS: Update ARM64 BPF JIT maintainer · 325423ca
      Puranjay Mohan authored
      Zi Shen Lim is not actively doing kernel development and has decided to
      tranfer the responsibility of maintaining the JIT to me.
      
      Add myself as the maintainer for BPF JIT for ARM64 and remove Zi Shen
      Lim.
      Signed-off-by: default avatarPuranjay Mohan <puranjay@kernel.org>
      Acked-by: default avatarZi Shen Lim <zlim.lnx@gmail.com>
      Link: https://lore.kernel.org/r/20240514183914.27737-1-puranjay@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      325423ca
    • Puranjay Mohan's avatar
      bpf, docs: Fix the description of 'src' in ALU instructions · 7a803005
      Puranjay Mohan authored
      An ALU instruction's source operand can be the value in the source
      register or the 32-bit immediate value encoded in the instruction. This
      is controlled by the 's' bit of the 'opcode'.
      
      The current description explicitly uses the phrase 'value of the source
      register' when defining the meaning of 'src'.
      
      Change the description to use 'source operand' in place of 'value of the
      source register'.
      Signed-off-by: default avatarPuranjay Mohan <puranjay@kernel.org>
      Acked-by: default avatarDave Thaler <dthaler1968@gmail.com>
      Link: https://lore.kernel.org/r/20240514130303.113607-1-puranjay@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      7a803005
    • Andrii Nakryiko's avatar
      libbpf: fix feature detectors when using token_fd · 1de27bba
      Andrii Nakryiko authored
      Adjust `union bpf_attr` size passed to kernel in two feature-detecting
      functions to take into account prog_token_fd field.
      
      Libbpf is avoiding memset()'ing entire `union bpf_attr` by only using
      minimal set of bpf_attr's fields. Two places have been missed when
      wiring BPF token support in libbpf's feature detection logic.
      
      Fix them trivially.
      
      Fixes: f3dcee93 ("libbpf: Wire up token_fd into feature probing logic")
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/r/20240513180804.403775-1-andrii@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      1de27bba
    • Jakub Kicinski's avatar
      621cde16
    • Ronald Wahl's avatar
      net: ks8851: Fix another TX stall caused by wrong ISR flag handling · 317a215d
      Ronald Wahl authored
      Under some circumstances it may happen that the ks8851 Ethernet driver
      stops sending data.
      
      Currently the interrupt handler resets the interrupt status flags in the
      hardware after handling TX. With this approach we may lose interrupts in
      the time window between handling the TX interrupt and resetting the TX
      interrupt status bit.
      
      When all of the three following conditions are true then transmitting
      data stops:
      
        - TX queue is stopped to wait for room in the hardware TX buffer
        - no queued SKBs in the driver (txq) that wait for being written to hw
        - hardware TX buffer is empty and the last TX interrupt was lost
      
      This is because reenabling the TX queue happens when handling the TX
      interrupt status but if the TX status bit has already been cleared then
      this interrupt will never come.
      
      With this commit the interrupt status flags will be cleared before they
      are handled. That way we stop losing interrupts.
      
      The wrong handling of the ISR flags was there from the beginning but
      with commit 3dc5d445 ("net: ks8851: Fix TX stall caused by TX
      buffer overrun") the issue becomes apparent.
      
      Fixes: 3dc5d445 ("net: ks8851: Fix TX stall caused by TX buffer overrun")
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Cc: Simon Horman <horms@kernel.org>
      Cc: netdev@vger.kernel.org
      Cc: stable@vger.kernel.org # 5.10+
      Signed-off-by: default avatarRonald Wahl <ronald.wahl@raritan.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      317a215d
    • Nikolay Aleksandrov's avatar
      net: bridge: mst: fix vlan use-after-free · 3a7c1661
      Nikolay Aleksandrov authored
      syzbot reported a suspicious rcu usage[1] in bridge's mst code. While
      fixing it I noticed that nothing prevents a vlan to be freed while
      walking the list from the same path (br forward delay timer). Fix the rcu
      usage and also make sure we are not accessing freed memory by making
      br_mst_vlan_set_state use rcu read lock.
      
      [1]
       WARNING: suspicious RCU usage
       6.9.0-rc6-syzkaller #0 Not tainted
       -----------------------------
       net/bridge/br_private.h:1599 suspicious rcu_dereference_protected() usage!
       ...
       stack backtrace:
       CPU: 1 PID: 8017 Comm: syz-executor.1 Not tainted 6.9.0-rc6-syzkaller #0
       Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
       Call Trace:
        <IRQ>
        __dump_stack lib/dump_stack.c:88 [inline]
        dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114
        lockdep_rcu_suspicious+0x221/0x340 kernel/locking/lockdep.c:6712
        nbp_vlan_group net/bridge/br_private.h:1599 [inline]
        br_mst_set_state+0x1ea/0x650 net/bridge/br_mst.c:105
        br_set_state+0x28a/0x7b0 net/bridge/br_stp.c:47
        br_forward_delay_timer_expired+0x176/0x440 net/bridge/br_stp_timer.c:88
        call_timer_fn+0x18e/0x650 kernel/time/timer.c:1793
        expire_timers kernel/time/timer.c:1844 [inline]
        __run_timers kernel/time/timer.c:2418 [inline]
        __run_timer_base+0x66a/0x8e0 kernel/time/timer.c:2429
        run_timer_base kernel/time/timer.c:2438 [inline]
        run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2448
        __do_softirq+0x2c6/0x980 kernel/softirq.c:554
        invoke_softirq kernel/softirq.c:428 [inline]
        __irq_exit_rcu+0xf2/0x1c0 kernel/softirq.c:633
        irq_exit_rcu+0x9/0x30 kernel/softirq.c:645
        instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
        sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1043
        </IRQ>
        <TASK>
       asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
       RIP: 0010:lock_acquire+0x264/0x550 kernel/locking/lockdep.c:5758
       Code: 2b 00 74 08 4c 89 f7 e8 ba d1 84 00 f6 44 24 61 02 0f 85 85 01 00 00 41 f7 c7 00 02 00 00 74 01 fb 48 c7 44 24 40 0e 36 e0 45 <4b> c7 44 25 00 00 00 00 00 43 c7 44 25 09 00 00 00 00 43 c7 44 25
       RSP: 0018:ffffc90013657100 EFLAGS: 00000206
       RAX: 0000000000000001 RBX: 1ffff920026cae2c RCX: 0000000000000001
       RDX: dffffc0000000000 RSI: ffffffff8bcaca00 RDI: ffffffff8c1eaa60
       RBP: ffffc90013657260 R08: ffffffff92efe507 R09: 1ffffffff25dfca0
       R10: dffffc0000000000 R11: fffffbfff25dfca1 R12: 1ffff920026cae28
       R13: dffffc0000000000 R14: ffffc90013657160 R15: 0000000000000246
      
      Fixes: ec7328b5 ("net: bridge: mst: Multiple Spanning Tree (MST) mode")
      Reported-by: syzbot+fa04eb8a56fd923fc5d8@syzkaller.appspotmail.com
      Closes: https://syzkaller.appspot.com/bug?extid=fa04eb8a56fd923fc5d8Signed-off-by: default avatarNikolay Aleksandrov <razor@blackwall.org>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3a7c1661
    • Nikolay Aleksandrov's avatar
      selftests: net: bridge: increase IGMP/MLD exclude timeout membership interval · 06080ea2
      Nikolay Aleksandrov authored
      When running the bridge IGMP/MLD selftests on debug kernels we can get
      spurious errors when setting up the IGMP/MLD exclude timeout tests
      because the membership interval is just 3 seconds and the setup has 2
      seconds of sleep plus various validations, the one second that is left
      is not enough. Increase the membership interval from 3 to 5 seconds to
      make room for the setup validation and 2 seconds of sleep.
      
      Fixes: 34d7ecb3 ("selftests: net: bridge: update IGMP/MLD membership interval value")
      Reported-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarNikolay Aleksandrov <razor@blackwall.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      06080ea2
    • Nikolay Aleksandrov's avatar
      net: bridge: xmit: make sure we have at least eth header len bytes · 8bd67ebb
      Nikolay Aleksandrov authored
      syzbot triggered an uninit value[1] error in bridge device's xmit path
      by sending a short (less than ETH_HLEN bytes) skb. To fix it check if
      we can actually pull that amount instead of assuming.
      
      Tested with dropwatch:
       drop at: br_dev_xmit+0xb93/0x12d0 [bridge] (0xffffffffc06739b3)
       origin: software
       timestamp: Mon May 13 11:31:53 2024 778214037 nsec
       protocol: 0x88a8
       length: 2
       original length: 2
       drop reason: PKT_TOO_SMALL
      
      [1]
      BUG: KMSAN: uninit-value in br_dev_xmit+0x61d/0x1cb0 net/bridge/br_device.c:65
       br_dev_xmit+0x61d/0x1cb0 net/bridge/br_device.c:65
       __netdev_start_xmit include/linux/netdevice.h:4903 [inline]
       netdev_start_xmit include/linux/netdevice.h:4917 [inline]
       xmit_one net/core/dev.c:3531 [inline]
       dev_hard_start_xmit+0x247/0xa20 net/core/dev.c:3547
       __dev_queue_xmit+0x34db/0x5350 net/core/dev.c:4341
       dev_queue_xmit include/linux/netdevice.h:3091 [inline]
       __bpf_tx_skb net/core/filter.c:2136 [inline]
       __bpf_redirect_common net/core/filter.c:2180 [inline]
       __bpf_redirect+0x14a6/0x1620 net/core/filter.c:2187
       ____bpf_clone_redirect net/core/filter.c:2460 [inline]
       bpf_clone_redirect+0x328/0x470 net/core/filter.c:2432
       ___bpf_prog_run+0x13fe/0xe0f0 kernel/bpf/core.c:1997
       __bpf_prog_run512+0xb5/0xe0 kernel/bpf/core.c:2238
       bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline]
       __bpf_prog_run include/linux/filter.h:657 [inline]
       bpf_prog_run include/linux/filter.h:664 [inline]
       bpf_test_run+0x499/0xc30 net/bpf/test_run.c:425
       bpf_prog_test_run_skb+0x14ea/0x1f20 net/bpf/test_run.c:1058
       bpf_prog_test_run+0x6b7/0xad0 kernel/bpf/syscall.c:4269
       __sys_bpf+0x6aa/0xd90 kernel/bpf/syscall.c:5678
       __do_sys_bpf kernel/bpf/syscall.c:5767 [inline]
       __se_sys_bpf kernel/bpf/syscall.c:5765 [inline]
       __x64_sys_bpf+0xa0/0xe0 kernel/bpf/syscall.c:5765
       x64_sys_call+0x96b/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:322
       do_syscall_x64 arch/x86/entry/common.c:52 [inline]
       do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
      
      Fixes: 1da177e4 ("Linux-2.6.12-rc2")
      Reported-by: syzbot+a63a1f6a062033cf0f40@syzkaller.appspotmail.com
      Closes: https://syzkaller.appspot.com/bug?extid=a63a1f6a062033cf0f40Signed-off-by: default avatarNikolay Aleksandrov <razor@blackwall.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8bd67ebb
    • Linus Torvalds's avatar
      Merge tag 'net-next-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 1b294a1f
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "Core & protocols:
      
         - Complete rework of garbage collection of AF_UNIX sockets.
      
           AF_UNIX is prone to forming reference count cycles due to fd
           passing functionality. New method based on Tarjan's Strongly
           Connected Components algorithm should be both faster and remove a
           lot of workarounds we accumulated over the years.
      
         - Add TCP fraglist GRO support, allowing chaining multiple TCP
           packets and forwarding them together. Useful for small switches /
           routers which lack basic checksum offload in some scenarios (e.g.
           PPPoE).
      
         - Support using SMP threads for handling packet backlog i.e. packet
           processing from software interfaces and old drivers which don't use
           NAPI. This helps move the processing out of the softirq jumble.
      
         - Continue work of converting from rtnl lock to RCU protection.
      
           Don't require rtnl lock when reading: IPv6 routing FIB, IPv6
           address labels, netdev threaded NAPI sysfs files, bonding driver's
           sysfs files, MPLS devconf, IPv4 FIB rules, netns IDs, tcp metrics,
           TC Qdiscs, neighbor entries, ARP entries via ioctl(SIOCGARP), a lot
           of the link information available via rtnetlink.
      
         - Small optimizations from Eric to UDP wake up handling, memory
           accounting, RPS/RFS implementation, TCP packet sizing etc.
      
         - Allow direct page recycling in the bulk API used by XDP, for +2%
           PPS.
      
         - Support peek with an offset on TCP sockets.
      
         - Add MPTCP APIs for querying last time packets were received/sent/acked
           and whether MPTCP "upgrade" succeeded on a TCP socket.
      
         - Add intra-node communication shortcut to improve SMC performance.
      
         - Add IPv6 (and IPv{4,6}-over-IPv{4,6}) support to the GTP protocol
           driver.
      
         - Add HSR-SAN (RedBOX) mode of operation to the HSR protocol driver.
      
         - Add reset reasons for tracing what caused a TCP reset to be sent.
      
         - Introduce direction attribute for xfrm (IPSec) states. State can be
           used either for input or output packet processing.
      
        Things we sprinkled into general kernel code:
      
         - Add bitmap_{read,write}(), bitmap_size(), expose BYTES_TO_BITS().
      
           This required touch-ups and renaming of a few existing users.
      
         - Add Endian-dependent __counted_by_{le,be} annotations.
      
         - Make building selftests "quieter" by printing summaries like
           "CC object.o" rather than full commands with all the arguments.
      
        Netfilter:
      
         - Use GFP_KERNEL to clone elements, to deal better with OOM
           situations and avoid failures in the .commit step.
      
        BPF:
      
         - Add eBPF JIT for ARCv2 CPUs.
      
         - Support attaching kprobe BPF programs through kprobe_multi link in
           a session mode, meaning, a BPF program is attached to both function
           entry and return, the entry program can decide if the return
           program gets executed and the entry program can share u64 cookie
           value with return program. "Session mode" is a common use-case for
           tetragon and bpftrace.
      
         - Add the ability to specify and retrieve BPF cookie for raw
           tracepoint programs in order to ease migration from classic to raw
           tracepoints.
      
         - Add an internal-only BPF per-CPU instruction for resolving per-CPU
           memory addresses and implement support in x86, ARM64 and RISC-V
           JITs. This allows inlining functions which need to access per-CPU
           state.
      
         - Optimize x86 BPF JIT's emit_mov_imm64, and add support for various
           atomics in bpf_arena which can be JITed as a single x86
           instruction. Support BPF arena on ARM64.
      
         - Add a new bpf_wq API for deferring events and refactor
           process-context bpf_timer code to keep common code where possible.
      
         - Harden the BPF verifier's and/or/xor value tracking.
      
         - Introduce crypto kfuncs to let BPF programs call kernel crypto
           APIs.
      
         - Support bpf_tail_call_static() helper for BPF programs with GCC 13.
      
         - Add bpf_preempt_{disable,enable}() kfuncs in order to allow a BPF
           program to have code sections where preemption is disabled.
      
        Driver API:
      
         - Skip software TC processing completely if all installed rules are
           marked as HW-only, instead of checking the HW-only flag rule by
           rule.
      
         - Add support for configuring PoE (Power over Ethernet), similar to
           the already existing support for PoDL (Power over Data Line)
           config.
      
         - Initial bits of a queue control API, for now allowing a single
           queue to be reset without disturbing packet flow to other queues.
      
         - Common (ethtool) statistics for hardware timestamping.
      
        Tests and tooling:
      
         - Remove the need to create a config file to run the net forwarding
           tests so that a naive "make run_tests" can exercise them.
      
         - Define a method of writing tests which require an external endpoint
           to communicate with (to send/receive data towards the test
           machine). Add a few such tests.
      
         - Create a shared code library for writing Python tests. Expose the
           YAML Netlink library from tools/ to the tests for easy Netlink
           access.
      
         - Move netfilter tests under net/, extend them, separate performance
           tests from correctness tests, and iron out issues found by running
           them "on every commit".
      
         - Refactor BPF selftests to use common network helpers.
      
         - Further work filling in YAML definitions of Netlink messages for:
           nftables, team driver, bonding interfaces, vlan interfaces, VF
           info, TC u32 mark, TC police action.
      
         - Teach Python YAML Netlink to decode attribute policies.
      
         - Extend the definition of the "indexed array" construct in the specs
           to cover arrays of scalars rather than just nests.
      
         - Add hyperlinks between definitions in generated Netlink docs.
      
        Drivers:
      
         - Make sure unsupported flower control flags are rejected by drivers,
           and make more drivers report errors directly to the application
           rather than dmesg (large number of driver changes from Asbjørn
           Sloth Tønnesen).
      
         - Ethernet high-speed NICs:
            - Broadcom (bnxt):
               - support multiple RSS contexts and steering traffic to them
               - support XDP metadata
               - make page pool allocations more NUMA aware
            - Intel (100G, ice, idpf):
               - extract datapath code common among Intel drivers into a library
               - use fewer resources in switchdev by sharing queues with the PF
               - add PFCP filter support
               - add Ethernet filter support
               - use a spinlock instead of HW lock in PTP clock ops
               - support 5 layer Tx scheduler topology
            - nVidia/Mellanox:
               - 800G link modes and 100G SerDes speeds
               - per-queue IRQ coalescing configuration
            - Marvell Octeon:
               - support offloading TC packet mark action
      
         - Ethernet NICs consumer, embedded and virtual:
            - stop lying about skb->truesize in USB Ethernet drivers, it
              messes up TCP memory calculations
            - Google cloud vNIC:
               - support changing ring size via ethtool
               - support ring reset using the queue control API
            - VirtIO net:
               - expose flow hash from RSS to XDP
               - per-queue statistics
               - add selftests
            - Synopsys (stmmac):
               - support controllers which require an RX clock signal from the
                 MII bus to perform their hardware initialization
            - TI:
               - icssg_prueth: support ICSSG-based Ethernet on AM65x SR1.0 devices
               - icssg_prueth: add SW TX / RX Coalescing based on hrtimers
               - cpsw: minimal XDP support
            - Renesas (ravb):
               - support describing the MDIO bus
            - Realtek (r8169):
               - add support for RTL8168M
            - Microchip Sparx5:
               - matchall and flower actions mirred and redirect
      
         - Ethernet switches:
            - nVidia/Mellanox:
               - improve events processing performance
            - Marvell:
               - add support for MV88E6250 family internal PHYs
            - Microchip:
               - add DCB and DSCP mapping support for KSZ switches
               - vsc73xx: convert to PHYLINK
            - Realtek:
               - rtl8226b/rtl8221b: add C45 instances and SerDes switching
      
         - Many driver changes related to PHYLIB and PHYLINK deprecated API
           cleanup
      
         - Ethernet PHYs:
            - Add a new driver for Airoha EN8811H 2.5 Gigabit PHY.
            - micrel: lan8814: add support for PPS out and external timestamp trigger
      
         - WiFi:
            - Disable Wireless Extensions (WEXT) in all Wi-Fi 7 devices
              drivers. Modern devices can only be configured using nl80211.
            - mac80211/cfg80211
               - handle color change per link for WiFi 7 Multi-Link Operation
            - Intel (iwlwifi):
               - don't support puncturing in 5 GHz
               - support monitor mode on passive channels
               - BZ-W device support
               - P2P with HE/EHT support
               - re-add support for firmware API 90
               - provide channel survey information for Automatic Channel Selection
            - MediaTek (mt76):
               - mt7921 LED control
               - mt7925 EHT radiotap support
               - mt7920e PCI support
            - Qualcomm (ath11k):
               - P2P support for QCA6390, WCN6855 and QCA2066
               - support hibernation
               - ieee80211-freq-limit Device Tree property support
            - Qualcomm (ath12k):
               - refactoring in preparation of multi-link support
               - suspend and hibernation support
               - ACPI support
               - debugfs support, including dfs_simulate_radar support
            - RealTek:
               - rtw88: RTL8723CS SDIO device support
               - rtw89: RTL8922AE Wi-Fi 7 PCI device support
               - rtw89: complete features of new WiFi 7 chip 8922AE including
                 BT-coexistence and Wake-on-WLAN
               - rtw89: use BIOS ACPI settings to set TX power and channels
               - rtl8xxxu: enable Management Frame Protection (MFP) support
      
         - Bluetooth:
            - support for Intel BlazarI and Filmore Peak2 (BE201)
            - support for MediaTek MT7921S SDIO
            - initial support for Intel PCIe BT driver
            - remove HCI_AMP support"
      
      * tag 'net-next-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1827 commits)
        selftests: netfilter: fix packetdrill conntrack testcase
        net: gro: fix napi_gro_cb zeroed alignment
        Bluetooth: btintel_pcie: Refactor and code cleanup
        Bluetooth: btintel_pcie: Fix warning reported by sparse
        Bluetooth: hci_core: Fix not handling hdev->le_num_of_adv_sets=1
        Bluetooth: btintel: Fix compiler warning for multi_v7_defconfig config
        Bluetooth: btintel_pcie: Fix compiler warnings
        Bluetooth: btintel_pcie: Add *setup* function to download firmware
        Bluetooth: btintel_pcie: Add support for PCIe transport
        Bluetooth: btintel: Export few static functions
        Bluetooth: HCI: Remove HCI_AMP support
        Bluetooth: L2CAP: Fix div-by-zero in l2cap_le_flowctl_init()
        Bluetooth: qca: Fix error code in qca_read_fw_build_info()
        Bluetooth: hci_conn: Use __counted_by() and avoid -Wfamnae warning
        Bluetooth: btintel: Add support for Filmore Peak2 (BE201)
        Bluetooth: btintel: Add support for BlazarI
        LE Create Connection command timeout increased to 20 secs
        dt-bindings: net: bluetooth: Add MediaTek MT7921S SDIO Bluetooth
        Bluetooth: compute LE flow credits based on recvbuf space
        Bluetooth: hci_sync: Use cmd->num_cis instead of magic number
        ...
      1b294a1f
    • Linus Torvalds's avatar
      Merge tag 'firewire-updates-6.10' of... · b850dc20
      Linus Torvalds authored
      Merge tag 'firewire-updates-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394
      
      Pull firewire updates from Takashi Sakamoto:
       "During the development period of v6.8 kernel, it became evident that
        there was a lack of helper utilities to trace the initial state of
        bus, while investigating certain PHYs compliant with different
        versions of IEEE 1394 specification.
      
        This series of changes includes the addition of tracepoints events,
        provided by 'firewire' subsystem. These events enable tracing of how
        firewire core functions during bus reset and asynchronous
        communication over IEEE 1394 bus.
      
        When implementing the tracepoints events, it was found that the
        existing serialization and deserialization helpers for several types
        of asynchronous packets are scattered across both firewire-core and
        firewire-ohci kernel modules. A set of inline functions is newly added
        to address it, along with some KUnit tests, serving as the foundation
        for the tracepoints events. This renders the dispersed code obsolete.
      
        The remaining changes constitute the final steps in phasing out the
        usage of deprecated PCI MSI APIs, in continuation from the previous
        version"
      
      * tag 'firewire-updates-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: (29 commits)
        firewire: obsolete usage of *-objs in Makefile for KUnit test
        firewire: core: remove flag and width from u64 formats of tracepoints events
        firewire: core: fix type of timestamp for async_inbound_template tracepoints events
        firewire: core: add tracepoint event for handling bus reset
        Revert "firewire: core: option to log bus reset initiation"
        firewire: core: add tracepoints events for initiating bus reset
        firewire: ohci: obsolete OHCI_PARAM_DEBUG_BUSRESETS from debug module parameter
        firewire: ohci: add bus-reset event for initial set of handled irq
        firewire: core: add tracepoints event for asynchronous inbound phy packet
        firewire: core/cdev: add tracepoints events for asynchronous phy packet
        firewire: core: add tracepoints events for asynchronous outbound response
        firewire: core: add tracepoint event for asynchronous inbound request
        firewire: core: add tracepoints event for asynchronous inbound response
        firewire: core: add tracepoints events for asynchronous outbound request
        firewire: core: add support for Linux kernel tracepoints
        firewire: core: replace local macros with common inline functions for isochronous packet header
        firewire: core: add common macro to serialize/deserialize isochronous packet header
        firewire: core: obsolete tcode check macros with inline functions
        firewire: ohci: replace hard-coded values with common macros
        firewire: ohci: replace hard-coded values with inline functions for asynchronous packet header
        ...
      b850dc20
    • Linus Torvalds's avatar
      Merge tag 'for-6.10/dm-changes' of... · 4f8b6f25
      Linus Torvalds authored
      Merge tag 'for-6.10/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Add a dm-crypt optional "high_priority" flag that enables the crypt
         workqueues to use WQ_HIGHPRI.
      
       - Export dm-crypt workqueues via sysfs (by enabling WQ_SYSFS) to allow
         for improved visibility and controls over IO and crypt workqueues.
      
       - Fix dm-crypt to no longer constrain max_segment_size to PAGE_SIZE.
         This limit isn't needed given that the block core provides late bio
         splitting if bio exceeds underlying limits (e.g. max_segment_size).
      
       - Fix dm-crypt crypt_queue's use of WQ_UNBOUND to not use
         WQ_CPU_INTENSIVE because it is meaningless with WQ_UNBOUND.
      
       - Fix various issues with dm-delay target (ranging from a resource
         teardown fix, a fix for hung task when using kthread mode, and other
         improvements that followed from code inspection).
      
      * tag 'for-6.10/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm-delay: remove timer_lock
        dm-delay: change locking to avoid contention
        dm-delay: fix max_delay calculations
        dm-delay: fix hung task introduced by kthread mode
        dm-delay: fix workqueue delay_timer race
        dm-crypt: don't set WQ_CPU_INTENSIVE for WQ_UNBOUND crypt_queue
        dm: use queue_limits_set
        dm-crypt: stop constraining max_segment_size to PAGE_SIZE
        dm-crypt: export sysfs of all workqueues
        dm-crypt: add the optional "high_priority" flag
      4f8b6f25
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 113d1dd9
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "Updates to the usual drivers (ufs, lpfc, qla2xxx, mpi3mr, libsas).
      
        The major update (which causes a conflict with block, see below) is
        Christoph removing the queue limits and their associated block
        helpers.
      
        The remaining patches are assorted minor fixes and deprecated function
        updates plus a bit of constification"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (141 commits)
        scsi: mpi3mr: Sanitise num_phys
        scsi: lpfc: Copyright updates for 14.4.0.2 patches
        scsi: lpfc: Update lpfc version to 14.4.0.2
        scsi: lpfc: Add support for 32 byte CDBs
        scsi: lpfc: Change lpfc_hba hba_flag member into a bitmask
        scsi: lpfc: Introduce rrq_list_lock to protect active_rrq_list
        scsi: lpfc: Clear deferred RSCN processing flag when driver is unloading
        scsi: lpfc: Update logging of protection type for T10 DIF I/O
        scsi: lpfc: Change default logging level for unsolicited CT MIB commands
        scsi: target: Remove unused list 'device_list'
        scsi: iscsi: Remove unused list 'connlist_err'
        scsi: ufs: exynos: Add support for Tensor gs101 SoC
        scsi: ufs: exynos: Add some pa_dbg_ register offsets into drvdata
        scsi: ufs: exynos: Allow max frequencies up to 267Mhz
        scsi: ufs: exynos: Add EXYNOS_UFS_OPT_TIMER_TICK_SELECT option
        scsi: ufs: exynos: Add EXYNOS_UFS_OPT_UFSPR_SECURE option
        scsi: ufs: dt-bindings: exynos: Add gs101 compatible
        scsi: qla2xxx: Fix debugfs output for fw_resource_count
        scsi: qedf: Ensure the copied buf is NUL terminated
        scsi: bfa: Ensure the copied buf is NUL terminated
        ...
      113d1dd9
    • Linus Torvalds's avatar
      Merge tag 'ata-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux · b2665fe6
      Linus Torvalds authored
      Pull ata updates from Damien Le Moal:
      
       - Convert the bindings for the imx-pata and ahci-da850 drivers to DT
         schemas (from Animesh)
      
       - Correct the code to handle HAS_IOPORT dependencies and conditionally
         compile drivers as needed (from Niklas)
      
       - Correct the legacy_exit() function in the pata_legacy driver to
         properly handle cleanups on driver exit (from Sergey)
      
       - Small code simplification removing the ata_exec_internal_sg()
         function and folding it into its only caller (from me)
      
      * tag 'ata-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
        ata: pata_legacy: make legacy_exit() work again
        ata: libata-core: Remove ata_exec_internal_sg()
        ata: add HAS_IOPORT dependencies
        dt-bindings: ata: ahci-da850: Convert to dtschema
        dt-bindings: ata: imx-pata: Convert to dtschema
      b2665fe6
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux · b47c1823
      Linus Torvalds authored
      Pull fsverity update from Eric Biggers:
       "Fix a false positive kmemleak warning"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux:
        fsverity: use register_sysctl_init() to avoid kmemleak warning
      b47c1823
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux · fc883e7a
      Linus Torvalds authored
      Pull fscrypt update from Eric Biggers:
       "Improve the performance of opening unencrypted files on filesystems
        that support fscrypt"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux:
        fscrypt: try to avoid refing parent dentry in fscrypt_file_open
      fc883e7a
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.10-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux · eafb55a3
      Linus Torvalds authored
      Pull orangefs update from Mike Marshall:
       "Fix out-of-bounds fsid access.
      
        Small fix to quiet warnings from string fortification helpers,
        suggested by Arnd Bergmann"
      
      * tag 'for-linus-6.10-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
        orangefs: fix out-of-bounds fsid access
      eafb55a3
    • Linus Torvalds's avatar
      Merge tag 'gfs2-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 9518ae6e
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Properly fix the glock shrinker this time: it broke in commit "gfs2:
         Make glock lru list scanning safer" and commit "gfs2: fix glock
         shrinker ref issues" wasn't actually enough to fix it
      
       - On unmount, keep glocks around long enough that no more dlm callbacks
         can occur on them
      
       - Some more folio conversion patches from Matthew Wilcox
      
       - Lots of other smaller fixes and cleanups
      
      * tag 'gfs2-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: (27 commits)
        gfs2: make timeout values more explicit
        gfs2: Convert gfs2_aspace_writepage() to use a folio
        gfs2: Add a migrate_folio operation for journalled files
        gfs2: Simplify gfs2_read_super
        gfs2: Convert gfs2_page_mkwrite() to use a folio
        gfs2: gfs2_freeze_unlock cleanup
        gfs2: Remove and replace gfs2_glock_queue_work
        gfs2: do_xmote fixes
        gfs2: finish_xmote cleanup
        gfs2: Unlock fewer glocks on unmount
        gfs2: Fix potential glock use-after-free on unmount
        gfs2: Remove ill-placed consistency check
        gfs2: Fix lru_count accounting
        gfs2: Fix "Make glock lru list scanning safer"
        Revert "gfs2: fix glock shrinker ref issues"
        gfs2: Fix "ignore unlock failures after withdraw"
        gfs2: Get rid of unnecessary test_and_set_bit
        gfs2: Don't set GLF_LOCK in gfs2_dispose_glock_lru
        gfs2: Replace gfs2_glock_queue_put with gfs2_glock_put_async
        gfs2: Get rid of gfs2_glock_queue_put in signal_our_withdraw
        ...
      9518ae6e
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 6fffab66
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
       "This set includes some small fixes, and some big internal changes:
      
         - Fix a long standing race between the unlock callback for the last
           lkb struct, and removing the rsb that became unused after the final
           unlock. This could lead different nodes to inconsistent info about
           the rsb master node.
      
         - Remove unnecessary refcounting on callback structs, returning to
           the way things were done in the past.
      
         - Do message processing in softirq context. This allows dlm messages
           to be cleared more quickly and efficiently, reducing long lists of
           incomplete requests. A future change to run callbacks directly from
           this context will make this more effective.
      
         - The softirq message processing involved a number of patches
           changing mutexes to spinlocks and rwlocks, and a fair amount of
           code re-org in preparation.
      
         - Use an rhashtable for rsb structs, rather than our old internal
           hash table implementation. This also required some re-org of lists
           and locks preparation for the change.
      
         - Drop the dlm_scand kthread, and use timers to clear unused rsb
           structs. Scanning all rsb's periodically was a lot of wasted work.
      
         - Fix recent regression in logic for copying LVB data in user space
           lock requests"
      
      * tag 'dlm-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm: (34 commits)
        dlm: return -ENOMEM if ls_recover_buf fails
        dlm: fix sleep in atomic context
        dlm: use rwlock for lkbidr
        dlm: use rwlock for rsb hash table
        dlm: drop dlm_scand kthread and use timers
        dlm: do not use ref counts for rsb in the toss state
        dlm: switch to use rhashtable for rsbs
        dlm: add rsb lists for iteration
        dlm: merge toss and keep hash table lists into one list
        dlm: change to single hashtable lock
        dlm: increment ls_count for dlm_scand
        dlm: do message processing in softirq context
        dlm: use spin_lock_bh for message processing
        dlm: remove schedule in receive path
        dlm: convert ls_recv_active from rw_semaphore to rwlock
        dlm: avoid blocking receive at the end of recovery
        dlm: convert res_lock to spinlock
        dlm: convert ls_waiters_mutex to spinlock
        dlm: drop mutex use in waiters recovery
        dlm: add new struct to save position in dlm_copy_master_names
        ...
      6fffab66
    • Linus Torvalds's avatar
      Merge tag 'for-6.10-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · a3d1f54d
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "This update brings a few minor performance improvements, otherwise
        there's a lot of refactoring, cleanups and other sort of not user
        visible changes.
      
        Performance improvements:
      
         - inline b-tree locking functions, improvement in metadata-heavy
           changes
      
         - relax locking on a range that's being reflinked, allows read
           operations to run in parallel
      
         - speed up NOCOW write checks (throughput +9% on a sample test)
      
         - extent locking ranges have been reduced in several places, namely
           around delayed ref processing
      
        Core:
      
         - more page to folio conversions:
            - relocation
            - send
            - compression
            - inline extent handling
            - super block write and wait
      
         - extent_map structure optimizations:
            - reduced structure size
            - code simplifications
            - add shrinker for allocated objects, the numbers can go high and
              could exhaust memory on smaller systems (reported) as they may
              not get an opportunity to be freed fast enough
      
         - extent locking optimizations:
            - reduce locking ranges where it does not seem to be necessary and
              are safe due to other means of synchronization
            - potential improvements due to lower contention,
              allocation/freeing and state management operations of extent
              state tracking structures
      
         - delayed ref cleanups and simplifications
      
         - updated trace points
      
         - improved error handling, warnings and assertions
      
         - cleanups and refactoring, unification of error handling paths"
      
      * tag 'for-6.10-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (122 commits)
        btrfs: qgroup: fix initialization of auto inherit array
        btrfs: count super block write errors in device instead of tracking folio error state
        btrfs: use the folio iterator in btrfs_end_super_write()
        btrfs: convert super block writes to folio in write_dev_supers()
        btrfs: convert super block writes to folio in wait_dev_supers()
        bio: Export bio_add_folio_nofail to modules
        btrfs: remove duplicate included header from fs.h
        btrfs: add a cached state to extent_clear_unlock_delalloc
        btrfs: push extent lock down in submit_one_async_extent
        btrfs: push lock_extent down in cow_file_range()
        btrfs: move can_cow_file_range_inline() outside of the extent lock
        btrfs: push lock_extent into cow_file_range_inline
        btrfs: push extent lock into cow_file_range
        btrfs: push extent lock into run_delalloc_cow
        btrfs: remove unlock_extent from run_delalloc_compressed
        btrfs: push extent lock down in run_delalloc_nocow
        btrfs: adjust while loop condition in run_delalloc_nocow
        btrfs: push extent lock into run_delalloc_nocow
        btrfs: push the extent lock into btrfs_run_delalloc_range
        btrfs: lock extent when doing inline extent in compression
        ...
      a3d1f54d
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 47e9bff7
      Linus Torvalds authored
      Pull erofs updates from Gao Xiang:
       "The LZ4 global buffer count is now configurable instead of the
        previous per-CPU buffers, which is useful for bare metals with
        hundreds of CPUs. A reserved buffer pool for LZ4 decompression can
        also be enabled to minimize the tail allocation latencies under the
        low memory scenarios with heavy memory pressure.
      
        In addition, Zstandard algorithm is now supported as an alternative
        since it has been requested by users for a while.
      
        There are some random cleanups as usual.
      
        Summary:
      
         - Make LZ4 global buffers configurable instead of per-CPU buffers
      
         - Add a reserved buffer pool for LZ4 decompression for lower latencies
      
         - Support Zstandard compression algorithm as an alternative
      
         - Derive fsid from on-disk UUID for .statfs() if possible
      
         - Minor cleanups"
      
      * tag 'erofs-for-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: Zstandard compression support
        erofs: clean up z_erofs_load_full_lcluster()
        erofs: derive fsid from on-disk UUID for .statfs() if possible
        erofs: add a reserved buffer pool for lz4 decompression
        erofs: do not use pagepool in z_erofs_gbuf_growsize()
        erofs: rename per-CPU buffers to global buffer pool and make it configurable
        erofs: rename utils.c to zutil.c
      47e9bff7
  2. 14 May, 2024 19 commits
    • Linus Torvalds's avatar
      Merge tag 'efi-next-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 1b10b390
      Linus Torvalds authored
      Pull EFI updates from Ard Biesheuvel:
       "Only a handful of changes this cycle, consisting of cleanup work and a
        low-prio bugfix:
      
         - Additional cleanup by Tim for the efivarfs variable name length
           confusion
      
         - Avoid freeing a bogus pointer when virtual remapping is omitted in
           the EFI boot stub"
      
      * tag 'efi-next-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efi: libstub: only free priv.runtime_map when allocated
        efi: Clear up misconceptions about a maximum variable name size
        efivarfs: Remove unused internal struct members
        Documentation: Mark the 'efivars' sysfs interface as removed
        efi: pstore: Request at most 512 bytes for variable names
      1b10b390
    • Linus Torvalds's avatar
      Merge tag 'hid-for-linus-2024051401' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 614da38e
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - Firmware loading from host support in intel-ish driver, needed to
         support Lunar Lake and later (Zhang Lixu)
      
       - updates to HID-BPF infrastructure, with some of the specific fixes
         (e.g. rdesc fixups) abstracted into separate BPF programs for
         consumption from libevdev/udev-hid-bpf (Benjamin Tissoires)
      
       - support for Deck IMU in hid-steam (Max Maisel)
      
       - fixes for better support of 3rd party playstation DS4 controllers
         (Max Staudt)
      
       - support for missing mappings and codes from HUT 1.5 in hid-debug
         (Thomas Kuehne)
      
       - initial support for ROG Ally and ROG X13 devices (Luke D. Jones)
      
       - full support for WinWing Orion2 (Ivan Gorinov)
      
      * tag 'hid-for-linus-2024051401' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (74 commits)
        selftests/hid: skip tests with HID-BPF if udev-hid-bpf is not installed
        selftests/hid: add tests for the Raptor Mach 2 joystick
        selftests/hid: move the gamepads definitions in the test file
        selftests/hid: import base_gamepad.py from hid-tools
        selftests/hid: add Huion Kamvas Pro 19 tests
        selftests/hid: tablets: also check for XP-Pen offset correction
        selftests/hid: tablets: add a couple of XP-PEN tablets
        selftests/hid: tablets: reduce the number of pen state
        selftests/hid: add support for HID-BPF pre-loading before starting a test
        selftests/hid: import base_device.py from hid-tools
        HID: bpf: add in-tree HID-BPF fix for the Raptor Mach 2
        HID: bpf: add in-tree HID-BPF fix for the Huion Kamvas Pro 19
        HID: bpf: add in-tree HID-BPF fix for the XBox Elite 2 over Bluetooth
        HID: bpf: add in-tree HID-BPF fix for the Wacom ArtPen
        HID: bpf: add in-tree HID-BPF fix for the IOGear Kaliber Gaming MMOmentum mouse
        HID: bpf: add in-tree HID-BPF fix for the HP Elite Presenter Mouse
        HID: bpf: add in-tree HID-BPF fix for the XPPen Artist 16
        HID: bpf: add first in-tree HID-BPF fix for the XPPen Artist 24
        HID: do not assume HAT Switch logical max < 8
        HID: amd_sfh: Use amd_get_c2p_val() to read C2P register
        ...
      614da38e
    • Linus Torvalds's avatar
      Merge tag 'gpio-updates-for-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · ce952d8f
      Linus Torvalds authored
      Pull gpio updates from Bartosz Golaszewski
       "This was a quiet release cycle for the GPIO tree and so this
        pull-request is relatively small.
      
        We have one new driver, some minor improvements to the GPIO core code
        and across several drivers, some DT and documentation updates but in
        general nothing stands out or is controversial. All changes have spent
        time in next with no reported issues (or ones that were quickly
        fixed).
      
        GPIO core:
         - remove more unused legacy interfaces (after converting the last
           remaining users to better alternatives)
         - update kerneldocs
         - improve error handling and log messages in GPIO ACPI code
         - remove dead code (always true checks) from GPIOLIB
      
        New drivers:
         - add a driver for Intel Granite Rapids-D vGPIO
      
        Driver improvements:
         - use -ENOTSUPP consistently in gpio-regmap and gpio-pcie-idio-24
         - provide an ID table for gpio-cros-ec to avoid a driver name
           fallback check
         - add support for gpio-ranges for GPIO drivers supporting multiple
           GPIO banks
         - switch to using dynamic GPIO base in gpio-brcmstb
         - fix irq handling in gpio-npcm-sgpio
         - switch to memory mapped IO accessors in gpio-sch
      
        DT bindings:
         - add support for gpio-ranges to gpio-brcmstb
         - add support for a new model and the gpio-line-names property to
           gpio-mpfs
      
        Documentation:
         - replace leading tabs with spaces in code blocks
         - fix typos"
      
      * tag 'gpio-updates-for-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (30 commits)
        gpio: nuvoton: Fix sgpio irq handle error
        gpiolib: Discourage to use formatting strings in line names
        gpio: brcmstb: add support for gpio-ranges
        gpio: of: support gpio-ranges for multiple gpiochip devices
        dt-bindings: gpio: brcmstb: add gpio-ranges
        gpio: Add Intel Granite Rapids-D vGPIO driver
        gpio: brcmstb: Use dynamic GPIO base numbers
        gpiolib: acpi: Set label for IRQ only lines
        gpiolib: acpi: Add fwnode name to the GPIO interrupt label
        gpiolib: Get rid of never false gpio_is_valid() calls
        gpiolib: acpi: Pass con_id instead of property into acpi_dev_gpio_irq_get_by()
        gpiolib: acpi: Move acpi_can_fallback_to_crs() out of __acpi_find_gpio()
        gpiolib: acpi: Simplify error handling in __acpi_find_gpio()
        gpiolib: acpi: Extract __acpi_find_gpio() helper
        gpio: sch: Utilise temporary variable for struct device
        gpio: sch: Switch to memory mapped IO accessors
        gpio: regmap: Use -ENOTSUPP consistently
        gpio: pcie-idio-24: Use -ENOTSUPP consistently
        Documentation: gpio: Replace leading TABs by spaces in code blocks
        gpiolib: acpi: Check for errors first in acpi_find_gpio()
        ...
      ce952d8f
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux · 9d81e2d5
      Linus Torvalds authored
      Pull pwm updates from Uwe Kleine-König:
       "Apart for the normal updates for dt bindings, cleanups and support for
        new device variants to existing drivers this completes the conversion
        to pwmchip_alloc() which was started in the v6.9 development cycle.
      
        Using pwmchip_alloc() is a precondition to the character device
        support which allows easier and faster access to PWM devices. However
        there are some issues I want to clean up before including it in
        mainline, so this isn't contained here despite it was in next for some
        time.
      
        Thanks to Alexandre Mergnat, Binbin Zhou, Dmitry Rokosov, George
        Stark, Jerome Brunet and Varshini Rajendran for their contributions.
        Further thanks go to AngeloGioacchino Del Regno, Conor Dooley, David
        Lechner, Fabrice Gasnier, Florian Fainelli, Guenter Roeck, Gustavo A.
        R. Silva, Krzysztof Kozlowski and Rob Herring for valuable patch
        review"
      
      * tag 'pwm/for-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux: (34 commits)
        pwm: pca9685: Drop explicit initialization of struct i2c_device_id::driver_data to 0
        dt-bindings: pwm: snps,dw-apb-timers: Do not require pwm-cells twice
        dt-bindings: pwm: mediatek,pwm-disp: Do not require pwm-cells twice
        dt-bindings: pwm: mediatek,mt2712: Do not require pwm-cells twice
        dt-bindings: pwm: marvell,pxa: Do not require pwm-cells twice
        dt-bindings: pwm: google,cros-ec: Do not require pwm-cells twice
        dt-bindings: pwm: bcm2835: Do not require pwm-cells twice
        pwm: meson: Use mul_u64_u64_div_u64() for frequency calculating
        pwm: meson: Add check for error from clk_round_rate()
        pwm: meson: Drop unneeded check in .get_state()
        dt-bindings: pwm: mediatek,pwm-disp: add compatible for mt8365 SoC
        pwm: meson: Add generic compatible for meson8 to sm1
        pwm: bcm2835: Drop open coded variant of devm_clk_rate_exclusive_get()
        pwm: bcm2835: Introduce a local variable for &pdev->dev
        pwm: stm32: Calculate prescaler with a division instead of a loop
        pwm: stm32: Fix for settings using period > UINT32_MAX
        pwm: stm32: Improve precision of calculation in .apply()
        pwm: stm32: Add error messages in .probe()'s error paths
        pwm: Make pwmchip_[sg]et_drvdata() a wrapper around dev_set_drvdata()
        pwm: Don't check pointer for being non-NULL after use
        ...
      9d81e2d5
    • Linus Torvalds's avatar
      Merge tag 'for-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pateldipen1984/linux · 00fddaf5
      Linus Torvalds authored
      Pull hte/timestamp update from Dipen Patel:
      
       - Improve hte-test driver platform remove callback by replacing it with
         the remove_new which returns void instead
      
      * tag 'for-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pateldipen1984/linux:
        hte: tegra-194: Convert to platform remove callback returning void
      00fddaf5
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · a8cc7eb9
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "New drivers:
      
         - Infineon XDP710
      
         - EC Chip driver for Lenovo ThinkStation motherboards
      
         - Analog Devices ADP1050
      
        Improved support for existing drivers:
      
         - emc1403: Convert to with_info API; Support for EMC1428 and EMC1438
      
         - nzxt-kraken3: Support for NZXT Kraken 2023
      
         - aquacomputer_d5next: Support for Octo flow sensors
      
         - pmbus/adm1275: Support for ADM1281
      
         - dell-smm: Supportt for Precision 7540 and G5 5505
      
        Other notable cleanup:
      
         - max6639: Use regmap
      
         - Remove unused structure fields from multiple drivers
      
         - Drop explicit initialization of struct i2c_device_id::driver_data
           to zero
      
         - Improve configuration mode handling in it87 driver
      
         - jc42: Drop support for I2C_CLASS_SPD
      
         - Various conversions to devicetree schema
      
         - Add HAS_IOPORT dependencies as needed
      
        Minor fixes and improvements to max31790, coretemp, aspeed-g6-pwm-tach,
        pwm-fan, pmbus/mp2975, acpi_power_meter, and lm70 drivers"
      
      * tag 'hwmon-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (52 commits)
        hwmon: (nzxt-kraken3) Bail out for unsupported device variants
        hwmon: (emc1403) Add support for EMC1428 and EMC1438.
        hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 (part 2)
        hwmon: (emc1403) Add support for conversion interval configuration
        hwmon: (emc1403) Support 11 bit accuracy
        hwmon: (emc1403) Convert to with_info API
        hwmon: (max6639) Use regmap
        hwmon: (npcm750-pwm-fan) Remove another unused field in struct npcm7xx_cooling_device
        hwmon: (npcm750-pwm-fan) Remove an unused field in struct npcm7xx_cooling_device
        hwmon: (stts751) Remove an unused field in struct stts751_priv
        hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0
        hwmon: (max31790) revise the scale to write pwm
        hwmon: (nzxt-kraken3) Add support for NZXT Kraken 2023 (standard and Elite) models
        hwmon: (nzxt-kraken3) Decouple device names from kinds
        hwmon: (it87) Remove tests nolonger required
        hwmon: (it87) Test for chipset before entering configuration mode
        hwmon: (it87) Do not enter configuration mode for some chiptypes
        hwmon: (it87) Rename FEAT_CONF_NOEXIT to FEAT_NOCONF as more descriptive of requirement
        hwmon: (pmbus) Add support for Infineon XDP710
        dt-bindings: hwmon: Add infineon xdp710 driver bindings
        ...
      a8cc7eb9
    • Linus Torvalds's avatar
      Merge tag 'spi-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · e2b4a5bf
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "The diffstat for this release is dominated by the new Airoha driver,
        mainly as a result of this being a generally quite quiet release.
        There were a couple of cleanups in the core but nothing substantial,
        the updates here are almost all driver specific ones.
      
         - Support for multi-word mode in the OMAP2 McSPI driver
      
         - Overhaul of the PXA2xx driver, mostly API updates
      
         - A number of DT binding conversions
      
         - Support for Airoha NAND controllers, Cirrus Logic CS35L56, Mobileye
           EYEQ5 and Renesas R8A779H0"
      
      * tag 'spi-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (87 commits)
        spi: dw: Bail out early on unsupported target mode
        spi: Remove unneded check for orig_nents
        MAINTAINERS: repair file entry in AIROHA SPI SNFI DRIVER
        spi: pxa2xx: Drop the stale entry in documentation TOC
        spi: pxa2xx: Don't provide struct chip_data for others
        spi: pxa2xx: Remove timeout field from struct chip_data
        spi: pxa2xx: Remove DMA parameters from struct chip_data
        spi: pxa2xx: Drop struct pxa2xx_spi_chip
        spi: pxa2xx: Don't use "proxy" headers
        spi: pxa2xx: Remove outdated documentation
        spi: pxa2xx: Move contents of linux/spi/pxa2xx_spi.h to a local one
        spi: pxa2xx: Provide num-cs for Sharp PDAs via device properties
        spi: pxa2xx: Allow number of chip select pins to be read from property
        spi: dt-bindings: ti,qspi: convert to dtschema
        spi: bitbang: Add missing MODULE_DESCRIPTION()
        spi: bitbang: Use NSEC_PER_*SEC rather than hard coding
        spi: dw: Drop default number of CS setting
        spi: dw: Convert dw_spi::num_cs to u32
        spi: dw: Add a number of native CS auto-detection
        spi: dw: Convert to using BITS_TO_BYTES() macro
        ...
      e2b4a5bf
    • Linus Torvalds's avatar
      Merge tag 'regulator-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 07bbfc6a
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "There's one API update here, a new API factoring out a common pattern
        for reference voltage supplies. These are supplies used as a reference
        by analogue circuits where the consumer requests and enables the
        supply, reads the voltage to calibrate the user and then never touches
        it again. This is factored out into a single operation which just
        returns the voltage and uses devm_ to manage the request and enable
        portion.
      
        Otherwise this has been a very quiet release, we've got some new
        device support, some small fixes, housekeeping and cleanup work but
        nothing substantial.
      
        There's also some non-regulator changes in here, a number of users for
        the new reference voltage API were merged along with it and some MFD
        changes were pulled in as dependencies for new driver work.
      
        Highlights:
      
         - Add a new API for single operation handling of reference voltages
      
         - Support for Allwinner AXP717 and D1, and NXP PCA9561A"
      
      * tag 'regulator-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (33 commits)
        regulator: sun20i: Add Allwinner D1 LDOs driver
        regulator: dt-bindings: Add Allwinner D1 system LDOs
        regulator: Mention regulator id in error message about dummy supplies
        staging: iio: impedance-analyzer: ad5933: Use devm_regulator_get_enable_read_voltage()
        iio: frequency: admv1013: Use devm_regulator_get_enable_read_voltage()
        iio: addac: ad74115: Use devm_regulator_get_enable_read_voltage()
        hwmon: (adc128d818) simplify final return in probe
        regulator: devres: fix devm_regulator_get_enable_read_voltage() return
        hwmon: (da9052) Use devm_regulator_get_enable_read_voltage()
        hwmon: (adc128d818) Use devm_regulator_get_enable_read_voltage()
        regulator: devres: add API for reference voltage supplies
        regulator: rtq2208: Fix LDO discharge register and add vsel setting
        regulator: dt-bindings: fixed-regulator: Add a preferred node name
        regulator: axp20x: add support for the AXP717
        mfd: axp20x: Add support for AXP717 PMIC
        dt-bindings: mfd: x-powers,axp152: Document AXP717
        regulator: axp20x: fix typo-ed identifier
        dt-bindings: regulator: qcom,usb-vbus-regulator: Add PM7250B compatible
        regulator: pca9450: add pca9451a support
        regulator: dt-bindings: pca9450: add pca9451a support
        ...
      07bbfc6a
    • Linus Torvalds's avatar
      Merge tag 'regmap-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · fffe418b
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "Other than a few cleanups the changes here are all in the KUnit tests,
        Richard Fitzgerald sent some bug fixes during the v6.9 cycle and while
        adding test coverage for the issues fixed did some fairly substantial
        improvements, both cleaning up the framework and building out the
        coverage"
      
      * tag 'regmap-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: Reorder fields in 'struct regmap_config' to save some memory
        regmap: kunit: Fix an NULL vs IS_ERR() check
        regmap: spi: Add missing MODULE_DESCRIPTION()
        regmap: Drop capitalisation in MODULE_DESCRIPTION()
        regmap: kunit: Add test cases for regmap_read_bypassed()
        regmap: kunit: Add cache-drop test with multiple cache blocks
        regmap: kunit: Replace a kmalloc/kfree() pair with KUnit-managed alloc
        regmap: kunit: Use a KUnit action to call regmap_exit()
        regmap: kunit: Add more cache-sync tests
        regmap: kunit: Add more cache-drop tests
        regmap: kunit: Run non-sparse cache tests at non-zero register addresses
        regmap: kunit: Run sparse cache tests at non-zero register addresses
        regmap: kunit: Introduce struct for test case parameters
        regmap: kunit: Create a struct device for the regmap
        regmap: kunit: Fix warnings of implicit casts to __le16 and __be16
        regmap: maple: Remove second semicolon
      fffe418b
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 101b7a97
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These are ACPICA updates coming from the 20240322 release upstream, an
        ACPI DPTF driver update adding new platform support for it, some new
        quirks and some assorted fixes and cleanups.
      
        Specifics:
      
         - Add EINJ CXL error types to actbl1.h (Ben Cheatham)
      
         - Add support for RAS2 table to ACPICA (Shiju Jose)
      
         - Fix various spelling mistakes in text files and code comments in
           ACPICA (Colin Ian King)
      
         - Fix spelling and typos in ACPICA (Saket Dumbre)
      
         - Modify ACPI_OBJECT_COMMON_HEADER (lijun)
      
         - Add RISC-V RINTC affinity structure support to ACPICA (Haibo Xu)
      
         - Fix CXL 3.0 structure (RDPAS) in the CEDT table (Hojin Nam)
      
         - Add missin increment of registered GPE count to ACPICA (Daniil
           Tatianin)
      
         - Mark new ACPICA release 20240322 (Saket Dumbre)
      
         - Add support for the AEST V2 table to ACPICA (Ruidong Tian)
      
         - Disable -Wstringop-truncation for some ACPICA code in the kernel to
           avoid a compiler warning that is not very useful (Arnd Bergmann)
      
         - Make the kernel indicate support for several ACPI features that are
           in fact supported to the platform firmware through _OSC and fix the
           Generic Initiator Affinity _OSC bit (Armin Wolf)
      
         - Make the ACPI core set the owner value for ACPI drivers, drop the
           owner setting from a number of drivers and eliminate the owner
           field from struct acpi_driver (Krzysztof Kozlowski)
      
         - Rearrange fields in several structures to effectively eliminate
           computations from container_of() in some cases (Andy Shevchenko)
      
         - Do some assorted cleanups of the ACPI device enumeration code (Andy
           Shevchenko)
      
         - Make the ACPI device enumeration code skip devices with _STA values
           clearly identified by the specification as invalid (Rafael Wysocki)
      
         - Rework the handling of the NHLT table to simplify and clarify it
           and drop some obsolete pieces (Cezary Rojewski)
      
         - Add ACPI IRQ override quirks for Asus Vivobook Pro N6506MV,
           TongFang GXxHRXx and GMxHGxx, and XMG APEX 17 M23 (Guenter
           Schafranek, Tamim Khan, Christoffer Sandberg)
      
         - Add reference to UEFI DSD Guide to the documentation related to the
           ACPI handling of device properties (Sakari Ailus)
      
         - Fix SRAT lookup of CFMWS ranges with numa_fill_memblks(), remove
           lefover architecture-dependent code from the ACPI NUMA handling
           code and simplify it on top of that (Robert Richter)
      
         - Add a num-cs device property to specify the number of chip selects
           for Intel Braswell to the ACPI LPSS (Intel SoC) driver and remove a
           nested CONFIG_PM #ifdef from it (Andy Shevchenko)
      
         - Move three x86-specific ACPI files to the x86 directory (Andy
           Shevchenko)
      
         - Mark SMO8810 accel on Dell XPS 15 9550 as always present and add a
           PNP_UART1_SKIP quirk for Lenovo Blade2 tablets (Hans de Goede)
      
         - Move acpi_blacklisted() declaration to asm/acpi.h (Kuppuswamy
           Sathyanarayanan)
      
         - Add Lunar Lake support to the ACPI DPTF driver (Sumeet Pawnikar)
      
         - Mark the einj_driver driver's remove callback as __exit because it
           cannot get unbound via sysfs (Uwe Kleine-König)
      
         - Fix a typo in the ACPI documentation regarding the layout of sysfs
           subdirectory representing the ACPI namespace (John Watts)
      
         - Make the ACPI pfrut utility print the update_cap field during
           capability query (Chen Yu)
      
         - Add HAS_IOPORT dependencies to PNP (Niklas Schnelle)"
      
      * tag 'acpi-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (72 commits)
        ACPI/NUMA: Squash acpi_numa_memory_affinity_init() into acpi_parse_memory_affinity()
        ACPI/NUMA: Squash acpi_numa_slit_init() into acpi_parse_slit()
        ACPI/NUMA: Remove architecture dependent remainings
        x86/numa: Fix SRAT lookup of CFMWS ranges with numa_fill_memblks()
        ACPI: video: Add backlight=native quirk for Lenovo Slim 7 16ARH7
        ACPI: scan: Avoid enumerating devices with clearly invalid _STA values
        ACPI: Move acpi_blacklisted() declaration to asm/acpi.h
        ACPI: resource: Skip IRQ override on Asus Vivobook Pro N6506MV
        ACPICA: AEST: Add support for the AEST V2 table
        ACPI: tools: pfrut: Print the update_cap field during capability query
        ACPI: property: Add reference to UEFI DSD Guide
        Documentation: firmware-guide: ACPI: Fix namespace typo
        PNP: add HAS_IOPORT dependencies
        ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx
        ACPI: resource: Do IRQ override on GMxBGxx (XMG APEX 17 M23)
        ACPICA: Update acpixf.h for new ACPICA release 20240322
        ACPICA: events/evgpeinit: don't forget to increment registered GPE count
        ACPICA: Fix CXL 3.0 structure (RDPAS) in the CEDT table
        ACPICA: SRAT: Add dump and compiler support for RINTC affinity structure
        ACPICA: SRAT: Add RISC-V RINTC affinity structure
        ...
      101b7a97
    • Linus Torvalds's avatar
      Merge tag 'pm-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 0c181b1d
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These are mostly cpufreq updates, including a significant intel-pstate
        driver update and several amd-pstate improvements plus some updates of
        ARM cpufreq drivers, general fixes and cleanups.
      
        Also included are changes related to system sleep, power capping
        updates adding support for a new platform and a new hardware feature
        (among other things), a Samsung exynos-asv driver update allowing it
        to change its Energy Model after adjusting voltage, minor cpuidle and
        devfreq updates and a small documentation cleanup.
      
        Specifics:
      
         - Rework the handling of disabled turbo in the intel_pstate driver
           and make it update the maximum CPU frequency consistently
           regardless of the reason on top of a number of cleanups (Rafael
           Wysocki)
      
         - Add missing checks for NULL .exit() cpufreq driver callback to the
           cpufreq core (Viresh Kumar)
      
         - Prevent pulicy->max from going above the frequency QoS maximum
           value when cpufreq_frequency_table_verify() is used (Xuewen Yan)
      
         - Prevent a negative CPU number or frequency value from being printed
           if they are really large (Joshua Yeong)
      
         - Update MAINTAINERS entry for amd-pstate to add two new
           submaintainers and a designated reviewer (Huang Rui)
      
         - Clean up the amd-pstate driver and update its documentation
           (Gautham Shenoy)
      
         - Fix the highest frequency issue in the amd-pstate driver which
           limits performance (Perry Yuan)
      
         - Enable CPPC v2 for certain processors in the family 17H, as
           requested by TR40 processor users who expect improved performance
           and lower system temperature (Perry Yuan)
      
         - Change latency and delay values to be read from platform firmware
           firstly for more accurate timing (Perry Yuan)
      
         - A new quirk is introduced for supporting amd-pstate on legacy
           processors which either lack CPPC capability, or only only have
           CPPC v2 capability (Perry Yuan)
      
         - Sun50i cpufreq: Add support for opp_supported_hw, H616 platform and
           general cleanups (Andre Przywara, Martin Botka, Brandon Cheo Fusi,
           Dan Carpenter, Viresh Kumar)
      
         - CPPC cpufreq: Fix possible null pointer dereference (Aleksandr
           Mishin)
      
         - Eliminate uses of of_node_put() from cpufreq (Javier Carrasco,
           Shivani Gupta)
      
         - brcmstb-avs: ISO C90 forbids mixed declarations (Portia Stephens)
      
         - mediatek cpufreq: Add support for MT7988A (Sam Shih)
      
         - cpufreq-qcom-hw: Add SM4450 compatibles in DT bindings (Tengfei
           Fan)
      
         - Fix struct cpudata::epp_cached kernel-doc in the intel_pstate
           cpufreq driver (Jeff Johnson)
      
         - Fix kerneldoc description of ladder_do_selection() (Jeff Johnson)
      
         - Convert the cpuidle kirkwood driver to platform remove callback
           returning void (Yangtao Li)
      
         - Replace deprecated strncpy() with strscpy() in the hibernation core
           code (Justin Stitt)
      
         - Use %ps to simplify debug output in the core system-wide suspend
           and resume code (Len Brown)
      
         - Remove unnecessary else from device_init_wakeup() and make
           device_wakeup_disable() return void (Dhruva Gole)
      
         - Enable PMU support in the Intel TPMI RAPL driver (Zhang Rui)
      
         - Add support for ArrowLake-H platform to the Intel RAPL driver
           (Zhang Rui)
      
         - Avoid explicit cpumask allocation on stack in DTPM (Dawei Li)
      
         - Make the Samsung exynos-asv driver update the Energy Model after
           adjusting voltage on top of some preliminary changes of the OPP and
           Enery Model generic code (Lukasz Luba)
      
         - Remove a reference to a function that has been dropped from the
           power management documentation (Bjorn Helgaas)
      
         - Convert the platfrom remove callback to .remove_new for the
           exyno-nocp, exynos-ppmu, mtk-cci-devfreq, sun8i-a33-mbus, and
           rk3399_dmc devfreq drivers (Uwe Kleine-König)
      
         - Use DEFINE_SIMPLE_PM_OPS for exyno-bus.c driver (Anand Moon)"
      
      * tag 'pm-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (68 commits)
        PM / devfreq: exynos: Use DEFINE_SIMPLE_DEV_PM_OPS for PM functions
        PM / devfreq: rk3399_dmc: Convert to platform remove callback returning void
        PM / devfreq: sun8i-a33-mbus: Convert to platform remove callback returning void
        PM / devfreq: mtk-cci: Convert to platform remove callback returning void
        PM / devfreq: exynos-ppmu: Convert to platform remove callback returning void
        PM / devfreq: exynos-nocp: Convert to platform remove callback returning void
        cpufreq: amd-pstate: fix the highest frequency issue which limits performance
        cpufreq: intel_pstate: fix struct cpudata::epp_cached kernel-doc
        cpuidle: ladder: fix ladder_do_selection() kernel-doc
        powercap: intel_rapl_tpmi: Enable PMU support
        powercap: intel_rapl: Introduce APIs for PMU support
        PM: hibernate: replace deprecated strncpy() with strscpy()
        cpufreq: Fix up printing large CPU numbers and frequency values
        MAINTAINERS: cpufreq: amd-pstate: Add co-maintainers and reviewer
        cpufreq: amd-pstate: remove unused variable lowest_nonlinear_freq
        cpufreq: amd-pstate: fix code format problems
        cpufreq: amd-pstate: Add quirk for the pstate CPPC capabilities missing
        cppc_acpi: print error message if CPPC is unsupported
        cpufreq: amd-pstate: get transition delay and latency value from ACPI tables
        cpufreq: amd-pstate: Bail out if min/max/nominal_freq is 0
        ...
      0c181b1d
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f952b6c8
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "The most significant part of this is a rework of thermal governors,
        including a redesign of the thermal governor interface and changes to
        make some of them take trip point hysteresis into account properly, as
        well as some related cleanups of the thermal governors and thermal
        core.
      
        The above is based on preliminary changes refactoring thermal data
        structures and moving the definitions of some of them into the thermal
        core which also ensure that trip point crossing notifications will be
        sent to user space via netlink and recorded in the debug statistics in
        temperature order.
      
        In addition, netlink bind/unbind notifications are added to the
        thermal core and the Intel HFI driver is modified to use them to avoid
        sending netlink messages until there are subscribers.
      
        Apart from that, multiple thermal drivers are updated which includes
        new hardware support (MediaTek MT8188 and MT8186, Amlogic A1 thermal
        sensor, Loongson-2K2000, Lmh QCM2290), fixes, cleanups and
        documentation updates, and the recently added thermal debug code is
        fixed and cleaned up.
      
        Specifics:
      
         - Redesign the thermal governor interface to allow the governors to
           work in a more straightforward way (Rafael Wysocki)
      
         - Make thermal governors take the current trip point thresholds into
           account in their computations which allows trip hysteresis to be
           observed more accurately (Rafael Wysocki)
      
         - Make the thermal core manage passive polling for thermal zones and
           remove passive polling management from thermal governors (Rafael
           Wysocki)
      
         - Refactor trip point representation and move the definition of
           thermal governor and thermal zone device structures to the thermal
           core (Rafael Wysocki)
      
         - Sort trip point crossing notifications and debug recording of trip
           point crossing events by temperature (Rafael Wysocki)
      
         - Improve the handling of cooling device states and thermal
           mitigation episodes in progress in the thermal debug code (Rafael
           Wysocki)
      
         - Avoid excessive updates of trip point statistics and clean up the
           printing of thermal mitigation episode information (Rafael Wysocki)
      
         - Clean up thermal governors and thermal core (Rafael Wysocki)
      
         - Allow thermal drivers to register notifiers that will be invoked on
           netlink events like BIND and UNBIND, so that they can adjust their
           activity depending on whether or not there are any subscribers of
           netlink messages coming from them, and make the Intel HFI driver
           use this mechanism (Stanislaw Gruszka)
      
         - Adjust the update delay and capabilities-per-event values in the
           Intel HFI thermal driver to prevent it from missing events and
           allow it to process more data in one go (Ricardo Neri)
      
         - Add missing MODULE_DESCRIPTION() to multiple files in the
           int340x_thermal and intel_soc_dts_iosf drivers (Srinivas
           Pandruvada)
      
         - Replace deprecated strncpy() with strscpy() in the int340x_thermal
           driver (Justin Stitt)
      
         - Add QCM2290 compatible DT bindings for Lmh and fix a NULL pointer
           dereference in the lmh driver when the SCM is not present (Konrad
           Dybcio)
      
         - Use the strreplace() function instead of doing it manually in the
           Armada driver (Rasmus Villemoes)
      
         - Convert st,stih407-thermal to DT schema and fix up missing
           properties (Raphael Gallais-Pou)
      
         - Add suspend/resume by restoring the context of the tsens sensor
           (Priyansh Jain)
      
         - Support A1 SoC family Thermal Sensor controller and add the DT
           bindings (Dmitry Rokosov)
      
         - Improve the temperature approximation calculation and consolidate
           the Tj constant into a shared area of the structure instead of
           duplicating it on the Rcar Gen3 (Niklas Söderlund)
      
         - Fix the Mediatek LVTS sensor coefficient for the MT8192 in order to
           support it correctly (Hsin-Te Yuan)
      
         - Fix a NULL pointer dereference in the tsens driver when the
           function compute_intercept_slope() is called with a NULL parameter
           (Aleksandr Mishin)
      
         - Remove some unused fields in struct qpnp_tm_chip and k3_bandgap
           (Christophe Jaillet)
      
         - Fix up calibration efuse data decoding, consolidate the code by
           checking boundaries and refactor some part of the LVTS Mediatek
           driver. After setting the scene, add MT8186 and MT8188 along with
           the DT bindings (Nicolas Pitre)
      
         - Add Loongson-2K2000 support after some minor code adjustements and
           providing the DT bindings definition (Binbin Zhou)"
      
      * tag 'thermal-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (72 commits)
        thermal: intel: hfi: Increase the number of CPU capabilities per netlink event
        thermal: intel: hfi: Rename HFI_MAX_THERM_NOTIFY_COUNT
        thermal: intel: hfi: Shorten the thermal netlink event delay to 100ms
        thermal: intel: hfi: Rename HFI_UPDATE_INTERVAL
        thermal: intel: Add missing module description
        thermal: core: Move passive polling management to the core
        thermal: core: Do not call handle_thermal_trip() if zone temperature is invalid
        thermal: trip: Add missing empty code line
        thermal/debugfs: Avoid printing zero duration for mitigation events in progress
        thermal/debugfs: Pass cooling device state to thermal_debug_cdev_add()
        thermal/debugfs: Create records for cdev states as they get used
        thermal: core: Introduce thermal_governor_trip_crossed()
        thermal/debugfs: Make tze_seq_show() skip invalid trips and trips with no stats
        thermal/debugfs: Rename thermal_debug_update_temp() to thermal_debug_update_trip_stats()
        thermal/debugfs: Clean up thermal_debug_update_temp()
        thermal/debugfs: Avoid excessive updates of trip point statistics
        thermal: core: Relocate critical and hot trip handling
        thermal: core: Drop the .throttle() governor callback
        thermal: gov_user_space: Use .trip_crossed() instead of .throttle()
        thermal: gov_fair_share: Eliminate unnecessary integer divisions
        ...
      f952b6c8
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-next-6.10-rc1' of... · 4b95dc87
      Linus Torvalds authored
      Merge tag 'linux_kselftest-next-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
      
       - make framework and tests reporting KTAP compliant
      
       - make ktap_helpers and power_supply test POSIX compliant
      
       - add ksft_exit_fail_perror() to include errono in string form
      
       - avoid clang reporting false positive static analysis errors about
         functions that exit and never return. ksft_exit* functions are marked
         __noreturn to address this problem
      
       - add mechanism for reporting a KSFT_ result code
      
       - fix build warnings related missing headers and unused variables
      
       - fix clang build failures
      
       - cleanups to resctrl test
      
       - add host arch for LLVM builds
      
      * tag 'linux_kselftest-next-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (44 commits)
        selftests/sgx: Include KHDR_INCLUDES in Makefile
        selftests: Compile kselftest headers with -D_GNU_SOURCE
        selftests/resctrl: fix clang build warnings related to abs(), labs() calls
        selftests/ftrace: Fix checkbashisms errors
        selftests/ftrace: Fix BTFARG testcase to check fprobe is enabled correctly
        selftests/capabilities: fix warn_unused_result build warnings
        selftests: filesystems: add missing stddef header
        selftests: kselftest_deps: fix l5_test() empty variable
        selftests: default to host arch for LLVM builds
        selftests/resctrl: fix clang build failure: use LOCAL_HDRS
        selftests/binderfs: use the Makefile's rules, not Make's implicit rules
        Documentation: kselftest: fix codeblock
        selftests: kselftest: Make ksft_exit functions return void instead of int
        selftests: x86: ksft_exit_pass() does not return
        selftests: timers: ksft_exit functions do not return
        selftests: sync: ksft_exit_pass() does not return
        selftests/resctrl: ksft_exit_skip() does not return
        selftests: pidfd: ksft_exit functions do not return
        selftests/mm: ksft_exit functions do not return
        selftests: membarrier: ksft_exit_pass() does not return
        ...
      4b95dc87
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-kunit-6.10-rc1' of... · 896d3fce
      Linus Torvalds authored
      Merge tag 'linux_kselftest-kunit-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kunit updates from Shuah Khan:
      
       - fix race condition in try-catch completion
      
       - change __kunit_test_suites_init() to exit early if there is
         nothing to test
      
       - change string-stream-test to use KUNIT_DEFINE_ACTION_WRAPPER
      
       - move fault tests behind KUNIT_FAULT_TEST Kconfig option
      
       - kthread test fixes and improvements
      
       - iov_iter test fixes
      
      * tag 'linux_kselftest-kunit-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kunit: bail out early in __kunit_test_suites_init() if there are no suites to test
        kunit: string-stream-test: use KUNIT_DEFINE_ACTION_WRAPPER
        kunit: test: Move fault tests behind KUNIT_FAULT_TEST Kconfig option
        kunit: unregister the device on error
        kunit: Fix race condition in try-catch completion
        kunit: Add tests for fault
        kunit: Print last test location on fault
        kunit: Fix KUNIT_SUCCESS() calls in iov_iter tests
        kunit: Handle test faults
        kunit: Fix timeout message
        kunit: Fix kthread reference
        kunit: Handle thread creation error
      896d3fce
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-nolibc-6.10-rc1' of... · 4b768bf0
      Linus Torvalds authored
      Merge tag 'linux_kselftest-nolibc-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull nolibc updates from Shuah Khan:
      
       - add support for uname(2)
      
       - remove open-coded strnlen()
      
       - export strlen()
      
       - add tests for strlcat() and strlcpy()
      
       - fix memory error in realloc()
      
       - fix strlcat() and strlcpy() return code and size usage
      
      * tag 'linux_kselftest-nolibc-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        tools/nolibc: add support for uname(2)
        tools/nolibc/string: remove open-coded strnlen()
        selftests/nolibc: Add tests for strlcat() and strlcpy()
        tools/nolibc: Fix strlcpy() return code and size usage
        tools/nolibc: Fix strlcat() return code and size usage
        tools/nolibc/string: export strlen()
        tools/nolibc/stdlib: fix memory error in realloc()
      4b768bf0
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of https://github.com/openrisc/linux · 59010373
      Linus Torvalds authored
      Pull OpenRISC updates from Stafford Horne:
       "A few cleanups and fixups from me:
      
         - Add a few missing relocations to fix module loading
      
         - Cleanup FPU state save and restore to be more efficient
      
         - Cleanups to traps handling and logging
      
         - Fix issue with poweroff being broken after recent power driver
           refactorings"
      
      * tag 'for-linus' of https://github.com/openrisc/linux:
        openrisc: Move FPU state out of pt_regs
        openrisc: Add FPU config
        openrisc: traps: Don't send signals to kernel mode threads
        openrisc: traps: Remove calls to show_registers before die
        openrisc: traps: Convert printks to pr_<level> macros
        openrisc: Add support for more module relocations
        openrisc: Define openrisc relocation types
        openrisc: Use do_kernel_power_off()
      59010373
    • Linus Torvalds's avatar
      Merge tag 'sh-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux · c59cebe8
      Linus Torvalds authored
      Pull sh updates from John Paul Adrian Glaubitz:
       "The majority of improvements are coming from Geert Uytterhoeven who
        took the time to fix a total of 30 cases of "-Wmissing-prototypes"
        compiler warnings, either by adding a missing header include, defining
        the missing forward declarations or making the functions in question
        static.
      
        In the case of several DMA functions, the fix was to actually just
        remove them as they were added but never used. Another one of these
        warnings was eliminated by removing the left-over sh5 cache handling
        support, a change that was suggested by Yoshinori Sato and, finally,
        the last of these warnings was fixed by guarding the function
        setup_profiling_timer() with CONFIG_PROFILING.
      
        While at it, Geert also removed two unneeded casts to kprobe_opcode_t
        in the kprobes code.
      
        Another change was contributed by Guenter Roeck to fix errors that
        were reported during checksum unit tests. The fix actually reverts the
        older change cadc4e1a ("sh: Handle calling csum_partial with
        misaligned data") which turned to be incorrect. It remains to be
        investigated whether there is a better way to handle misaligned data
        in csum_partial().
      
        A small fix contributed by Krzysztof Kozlowski drops the incorrect SPI
        controller spi-max-frequency property in the device tree source file
        for the J2 device platform while Uwe Kleine-König converted the
        push-switch driver to have its callback function return void, a change
        that is currently being applied to all drivers throughout the kernel
        in order to avoid resource leaks.
      
        Last but not least, Artur Rojek has fixed the IOPORT base address for
        the Sega Dreamcast platform which allows the Linux kernel to be
        successfully booted on this once popular video game console for the
        first time since a long time ago"
      
      * tag 'sh-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux: (35 commits)
        sh: setup: Add missing forward declaration for sh_fdt_init()
        sh: smp: Protect setup_profiling_timer() by CONFIG_PROFILING
        sh: of-generic: Add missing #include <asm/clock.h>
        sh: dreamcast: Fix GAPS PCI bridge addressing
        sh: boot: Add proper forward declarations
        sh: boot: Remove sh5 cache handling
        Revert "sh: Handle calling csum_partial with misaligned data"
        sh: j2: Drop incorrect SPI controller spi-max-frequency property
        sh: push-switch: Convert to platform remove callback returning void
        sh: sh7785lcr: Make init_sh7785lcr_IRQ() static
        sh: sh7757: Add missing #include <asm/mmzone.h>
        sh: sh7757lcr: Make init_sh7757lcr_IRQ() static
        sh: mach-sh03: Make sh03_rtc_settimeofday() static
        sh: mach-highlander: Add missing #include <mach/highlander.h>
        sh: traps: Make is_dsp_inst() static
        sh: cache: Move forward declarations to <asm/cacheflush.h>
        sh: dma: Remove unused functionality
        sh: dwarf: Make dwarf_lookup_fde() static
        sh: kprobes: Remove unneeded kprobe_opcode_t casts
        sh: kprobes: Make trampoline_probe_handler() static
        ...
      c59cebe8
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 103916ff
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "The most interesting parts are probably the mm changes from Ryan which
        optimise the creation of the linear mapping at boot and (separately)
        implement write-protect support for userfaultfd.
      
        Outside of our usual directories, the Kbuild-related changes under
        scripts/ have been acked by Masahiro whilst the drivers/acpi/ parts
        have been acked by Rafael and the addition of cpumask_any_and_but()
        has been acked by Yury.
      
        ACPI:
      
         - Support for the Firmware ACPI Control Structure (FACS) signature
           feature which is used to reboot out of hibernation on some systems
      
        Kbuild:
      
         - Support for building Flat Image Tree (FIT) images, where the kernel
           Image is compressed alongside a set of devicetree blobs
      
        Memory management:
      
         - Optimisation of our early page-table manipulation for creation of
           the linear mapping
      
         - Support for userfaultfd write protection, which brings along some
           nice cleanups to our handling of invalid but present ptes
      
         - Extend our use of range TLBI invalidation at EL1
      
        Perf and PMUs:
      
         - Ensure that the 'pmu->parent' pointer is correctly initialised by
           PMU drivers
      
         - Avoid allocating 'cpumask_t' types on the stack in some PMU drivers
      
         - Fix parsing of the CPU PMU "version" field in assembly code, as it
           doesn't follow the usual architectural rules
      
         - Add best-effort unwinding support for USER_STACKTRACE
      
         - Minor driver fixes and cleanups
      
        Selftests:
      
         - Minor cleanups to the arm64 selftests (missing NULL check, unused
           variable)
      
        Miscellaneous:
      
         - Add a command-line alias for disabling 32-bit application support
      
         - Add part number for Neoverse-V2 CPUs
      
         - Minor fixes and cleanups"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (64 commits)
        arm64/mm: Fix pud_user_accessible_page() for PGTABLE_LEVELS <= 2
        arm64/mm: Add uffd write-protect support
        arm64/mm: Move PTE_PRESENT_INVALID to overlay PTE_NG
        arm64/mm: Remove PTE_PROT_NONE bit
        arm64/mm: generalize PMD_PRESENT_INVALID for all levels
        arm64: simplify arch_static_branch/_jump function
        arm64: Add USER_STACKTRACE support
        arm64: Add the arm64.no32bit_el0 command line option
        drivers/perf: hisi: hns3: Actually use devm_add_action_or_reset()
        drivers/perf: hisi: hns3: Fix out-of-bound access when valid event group
        drivers/perf: hisi_pcie: Fix out-of-bound access when valid event group
        kselftest: arm64: Add a null pointer check
        arm64: defer clearing DAIF.D
        arm64: assembler: update stale comment for disable_step_tsk
        arm64/sysreg: Update PIE permission encodings
        kselftest/arm64: Remove unused parameters in abi test
        perf/arm-spe: Assign parents for event_source device
        perf/arm-smmuv3: Assign parents for event_source device
        perf/arm-dsu: Assign parents for event_source device
        perf/arm-dmc620: Assign parents for event_source device
        ...
      103916ff
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 1338acfe
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - Fix invalid context sleep and reboot hang on Mac
      
       - Fix spinlock race in kernel thread creation
      
       - Miscellaneous fixes and improvements
      
       - defconfig updates
      
      * tag 'm68k-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: defconfig: Update defconfigs for v6.9-rc1
        m68k: Move ARCH_HAS_CPU_CACHE_ALIASING
        m68k: mac: Fix reboot hang on Mac IIci
        m68k: Fix spinlock race in kernel thread creation
        m68k: Let GENERIC_IOMAP depend on HAS_IOPORT
        m68k: amiga: Use str_plural() to fix Coccinelle warning
        macintosh/via-macii: Fix "BUG: sleeping function called from invalid context"
        zorro: Use helpers from ioport.h
        m68k: Calculate THREAD_SIZE from THREAD_SIZE_ORDER
      1338acfe