Commit Graph

1461734 Commits

Author SHA1 Message Date
John Johansen
2f6701a5ce apparmor: advertise the tcp fast open fix is applied
The fix for tcp-fast-open ensures that the connect permission is being
mediated correctly but it didn't add an artifact to the feature set to
advertise the fix is available. Add an artifact so that the test suite
can identify if the fix has not been properly applied or a new
unexpected regression has occurred.

Fixes: 4d587cd8a7 ("apparmor: mediate the implicit connect of TCP fast open sendmsg")
Signed-off-by: John Johansen <john.johansen@canonical.com>
2026-06-23 22:15:15 -07:00
Jakub Kicinski
d87363b0ed eth: fbnic: fix ordering of heartbeat vs ownership
When requesting ownership of the NIC (MAC/PHY control), we set up
the heartbeat to look stale:

  /* Initialize heartbeat, set last response to 1 second in the past
   * so that we will trigger a timeout if the firmware doesn't respond
   */
  fbd->last_heartbeat_response = req_time - HZ;
  fbd->last_heartbeat_request = req_time;

The response handler then sets:

  fbd->last_heartbeat_response = jiffies;

for which we wait via:

  fbnic_fw_init_heartbeat() -> fbnic_fw_heartbeat_current()

The scheme is a bit odd, but it should work in principle.

Fix the ordering of operations. We have to set up the stale heartbeat
before we send the message. Otherwise if the response is very fast
we will override it. This triggers on QEMU if we run on the core
that handles the IRQ, and results in ndo_open failing with ETIMEDOUT.

The change in ordering doesn't impact releasing the ownership.
Both ndo_stop and heartbeat check are under rtnl_lock.

Fixes: 20d2e88cc7 ("eth: fbnic: Add initial messaging to notify FW of our presence")
Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Link: https://patch.msgid.link/20260622154753.827506-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:53:13 -07:00
Jakub Kicinski
c793499057 Merge branch 'ipv6-fix-error-handling-in-disable_ipv6-sysctl'
Fernando Fernandez Mancera says:

====================
ipv6: fix error handling in disable_ipv6 sysctl

While working on a different IPv6 patch series I have spotted multiple
minor bugs around sysctl error handling and notifications. In general,
they are not serious issues.

In addition, there is one more issue in forwarding sysctl as it does not
check for CAP_NET_ADMIN for the namespace. I am keeping that patch out
of this series and I am aiming it at the net-next tree once it re-opens.

During v3, Ido's pointed out that it is unnecessary to reset the
position pointer when the return value is negative as at
new_sync_write() the ppos is only advanced when ret return value is
positive. That means we can get rid of that operation in ipv4/ipv6
sysctls. That is going to be sent to net-next too.
====================

Link: https://patch.msgid.link/20260622130857.5115-1-fmancera@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:12:50 -07:00
Fernando Fernandez Mancera
17dc3b245d ipv6: fix missing notification for ignore_routes_with_linkdown
When changing the ignore_routes_with_linkdown sysctl for a specific
interface, the RTM_NEWNETCONF netlink notification was not being emitted
to userspace. Fix this by emitting the notification when needed.

In addition, fix bogus return value for successful "all" and specific
interface write operation leading to a wrong reset of the position
pointer.

Fixes: 35103d1117 ("net: ipv6 sysctl option to ignore routes when nexthop link is down")
Reviewed-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260622130857.5115-7-fmancera@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:12:48 -07:00
Fernando Fernandez Mancera
6a1b50e585 ipv6: fix state corruption during proxy_ndp sysctl restart
When handling proxy_ndp, if rtnl_net_trylock() fails, the operation is
retried but as the value was already modified by the initial
proc_dointvec() call, the restarted syscall will read the newly modified
value as the 'old' state.

Fix this by taking the RTNL lock before parsing the input value if the
operation is a write.

Fixes: c92d5491a6 ("netconf: add support for IPv6 proxy_ndp")
Reviewed-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260622130857.5115-6-fmancera@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:12:47 -07:00
Fernando Fernandez Mancera
3e0e51c0ee ipv6: fix error handling in disable_policy sysctl
When writing to the disable_policy sysctl, if proc_dointvec() fails to
parse the input, it returns a negative error code. The current
implementation is resetting the position argument even if an error
occurred during proc_dointvec() and not only during sysctl restart.

Fix this by checking the return value of proc_dointvec() and returning
early on failure.

Fixes: df789fe752 ("ipv6: Provide ipv6 version of "disable_policy" sysctl")
Reviewed-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260622130857.5115-5-fmancera@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:12:47 -07:00
Fernando Fernandez Mancera
058b9b19f9 ipv6: fix error handling in forwarding sysctl
When writing to the forwarding sysctl, if proc_dointvec() fails to parse
the input, it returns a negative error code. The current implementation
is overwriting that error for write operations.

This results in a silent failure, it returns a successful write although
the configuration was not modified at all. When modifying the "all"
variant it can also modify the configuration of existing interfaces to
the wrong value.

Fix this by checking the return value of proc_dointvec() and returning
early on failure. In addition, adjust return code of
addrconf_fixup_forwarding() for successful operation.

Fixes: b325fddb7f ("ipv6: Fix sysctl unregistration deadlock")
Reviewed-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260622130857.5115-4-fmancera@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:12:47 -07:00
Fernando Fernandez Mancera
cf4f2b1440 ipv6: fix error handling in ignore_routes_with_linkdown sysctl
When writing to the ignore_routes_with_linkdown sysctl, if
proc_dointvec() fails to parse the input, it returns a negative error
code. The current implementation is overwriting that error for write
operations.

This results in a silent failure, it returns a successful write although
the configuration was not modified at all. When modifying the "all"
variant it can also modify the configuration of existing interfaces to
the wrong value.

Fix this by checking the return value of proc_dointvec() and returning
early on failure.

Fixes: 35103d1117 ("net: ipv6 sysctl option to ignore routes when nexthop link is down")
Reviewed-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260622130857.5115-3-fmancera@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:12:47 -07:00
Fernando Fernandez Mancera
c779441e50 ipv6: fix error handling in disable_ipv6 sysctl
When writing to the disable_ipv6 sysctl, if proc_dointvec() fails to
parse the input, it returns a negative error code. The current
implementation is overwriting that error for write operations.

This results in a silent failure, it returns a successful write although
the configuration was not modified at all. When modifying the "all"
variant it can also modify the configuration of existing interfaces to
the wrong value.

Fix this by checking the return value of proc_dointvec() and returning
early on failure.

Fixes: 56d417b12e ("IPv6: Add 'autoconf' and 'disable_ipv6' module parameters")
Reviewed-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260622130857.5115-2-fmancera@suse.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:12:47 -07:00
Wells Lu
89adcf17ee MAINTAINERS: Orphan SUNPLUS ETHERNET DRIVER
I have left Sunplus and no longer have access to the relevant hardware
to test or maintain this driver. Mark the driver as orphaned.

Signed-off-by: Wells Lu <wellslutw@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20260622180721.28334-1-wellslutw@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:12:32 -07:00
Runyu Xiao
f48763beab net: au1000: move free_irq out of the close-time spinlocked section
au1000_close() calls free_irq() while aup->lock is still held with
spin_lock_irqsave(). free_irq() can sleep because it takes the IRQ
descriptor request mutex, so it does not belong inside the close-time
spinlocked section.

This was found by our static analysis tool and then confirmed by manual
review of the in-tree au1000_close() .ndo_stop path. The reviewed path
keeps aup->lock held across the MAC reset, queue stop and
free_irq(dev->irq, dev).

A directed runtime validation kept that ndo_stop carrier and the same
free_irq(dev->irq, dev) operation under the driver lock. Lockdep reported
"BUG: sleeping function called from invalid context" and "Invalid wait
context" while free_irq() was taking desc->request_mutex, with
au1000_close() and free_irq() on the stack.

Drop aup->lock before freeing the IRQ. The protected close-time work still
stops the device and queue before IRQ teardown, but the sleepable IRQ core
path now runs outside the spinlocked section.

Signed-off-by: Runyu Xiao <runyu.xiao@seu.edu.cn>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260619151816.1144289-1-runyu.xiao@seu.edu.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:10:29 -07:00
Xin Long
9f58a0a4d6 sctp: fix err_chunk memory leaks in INIT handling
When sctp_verify_init() encounters unrecognized parameters, it allocates an
err_chunk to report them. However, this chunk is leaked in several code
paths:

1. In sctp_sf_do_5_1B_init(), if security_sctp_assoc_request() fails after
   sctp_verify_init() has populated err_chunk, the function returns
   immediately without freeing it.

2. In sctp_sf_do_unexpected_init(), the same leak occurs on the
   security_sctp_assoc_request() failure path.

3. In sctp_sf_do_unexpected_init(), on the success path after copying
   unrecognized parameters to the INIT-ACK, the function returns without
   freeing err_chunk, unlike sctp_sf_do_5_1B_init() which properly frees
   it.

Fix all three leaks by adding sctp_chunk_free(err_chunk) calls before
returning in the error paths and on the success path in
sctp_sf_do_unexpected_init().

Fixes: c081d53f97 ("security: pass asoc to sctp_assoc_request and sctp_sk_clone")
Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Reported-by: Sashiko <sashiko-bot@kernel.org>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/0656704f1b0158287c98aec09ba36c83e4a537ab.1781970534.git.lucien.xin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:09:26 -07:00
Jamal Hadi Salim
a8a02897f2 net/sched: cls_api: Handle TC_ACT_CONSUMED in tcf_qevent_handle
tcf_classify() can return TC_ACT_CONSUMED while the skb is held by the
defragmentation engine (e.g. act_ct on out-of-order fragments). When
that happens the skb is no longer owned by the caller and must not be
touched again.

tcf_qevent_handle() did not handle TC_ACT_CONSUMED: it fell through the
switch and returned the skb to the caller as if classification had
passed. The only qdisc that wires up qevents today is RED, via three call sites
(qe_mark on RED_PROB_MARK/HARD_MARK, qe_early_drop on congestion_drop)
red_enqueue() was continuing to operate on an skb it no longer owns  in this
case -- enqueueing it, dropping it, or updating statistics. Resulting in a UAF.

  tc qdisc add dev eth0 root handle 1: red ... qevent early_drop block 10
  tc filter add block 10 ... action ct

  (with ct defrag enabled and traffic that produces out-of-order
  fragments, e.g. a fragmented UDP stream)

Handle TC_ACT_CONSUMED in tcf_qevent_handle() the same way the ingress
and egress fast paths do: treat it as stolen and return NULL without
touching the skb. Unlike the TC_ACT_STOLEN case, the skb must not be
dropped/freed here, as it is no longer owned by us.

Fixes: 3f14b377d0 ("net/sched: act_ct: fix skb leak and crash on ooo frags")
Reported-by: Zero Day Initiative <zdi-disclosures@trendmicro.com>
Tested-by: Victor Nogueira <victor@mojatatu.com>
Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
Link: https://patch.msgid.link/20260620130749.226642-1-jhs@mojatatu.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:08:36 -07:00
Jakub Kicinski
96c035083e Merge branch 'drop-skb-metadata-before-lwt-encapsulation'
Jakub Sitnicki says:

====================
Drop skb metadata before LWT encapsulation

See description for patch 1.
====================

Link: https://patch.msgid.link/20260619-bpf-lwt-drop-skb-metadata-v3-0-71d6a33ab76b@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:07:42 -07:00
Jakub Sitnicki
33a971d549 selftests/bpf: Add LWT encap tests for skb metadata
Test that an LWT encapsulation does not silently corrupt XDP metadata
sitting in the skb headroom. Exercise all three LWT dispatch paths:

- BPF LWT xmit prog reserves headroom on the LWT .xmit redirect,
- mpls pushes an MPLS label on the LWT .xmit redirect,
- seg6 in encap mode runs on the LWT .input redirect,
- ioam6 encap inserts an IOAM Hop-by-Hop option on LWT .output redirect.

Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
Link: https://patch.msgid.link/20260619-bpf-lwt-drop-skb-metadata-v3-2-71d6a33ab76b@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:07:23 -07:00
Jakub Sitnicki
c00320b0e3 net: lwtunnel: Drop skb metadata before LWT encapsulation
skb metadata is meant for passing information between XDP and TC. It lives
in the skb headroom, immediately before skb->data. LWT programs cannot
access the __sk_buff->data_meta pseudo-pointer to metadata.

However, LWT encapsulation prepends outer headers, moving skb->data back
over the headroom where the metadata sits. On an RX-originated (forwarded)
packet that still carries XDP metadata this goes wrong in two different
ways, depending on the encap type:

1. Non-BPF LWT encaps (mpls, seg6, ioam6 ...) call skb_push()/skb_pull()
   and silently overwrite the metadata that sits in the headroom.

2) BPF LWT xmit calls bpf_skb_change_head(), which uses skb_data_move().
   That helper expects metadata immediately before skb->data. But since
   the IP output path runs LWT xmit before neighbour output has built
   the outgoing L2 header, for forwarded packets skb->data points at the
   L3 header while skb_mac_header() still points at the old L2 header.
   skb_data_move() sees metadata ending at skb_mac_header(), not before
   skb->data, warns and clears metadata:

  WARNING: CPU: 21 PID: 454557 at include/linux/skbuff.h:4609 skb_data_move+0x47/0x90
  CPU: 21 UID: 0 PID: 454557 Comm: napi/iconduit-g Tainted: G           O        6.18.21 #1
  RIP: 0010:skb_data_move+0x47/0x90
  Call Trace:
   <IRQ>
   bpf_skb_change_head+0xe6/0x1a0
   bpf_prog_...+0x213/0x2e3
   run_lwt_bpf.isra.0+0x1d3/0x360
   bpf_xmit+0x46/0xe0
   lwtunnel_xmit+0xa1/0xf0
   ip_finish_output2+0x1e7/0x5e0
   ip_output+0x63/0x100
   __netif_receive_skb_one_core+0x85/0xa0
   process_backlog+0x9c/0x150
   __napi_poll+0x2b/0x190
   net_rx_action+0x40b/0x7f0
   handle_softirqs+0xd2/0x270
   do_softirq+0x3f/0x60
   </IRQ>

That is what happens, as for how to fix it - a received packet that
carries metadata can reach an encap through any of the three LWT
redirect modes:

  LWTUNNEL_STATE_INPUT_REDIRECT
   ip6_rcv_finish
     dst_input
       lwtunnel_input

  LWTUNNEL_STATE_OUTPUT_REDIRECT
   ip6_rcv_finish
     dst_input
       ip6_forward
         ip6_forward_finish
           dst_output
             lwtunnel_output

  LWTUNNEL_STATE_XMIT_REDIRECT
   ip6_rcv_finish
     dst_input
       ip6_forward
         ip6_forward_finish
           dst_output
             ip6_output
               ip6_finish_output
                 ip6_finish_output2
                   lwtunnel_xmit

Every encap funnels through the three LWT dispatch helpers, so drop the
metadata there, right before handing the skb to the encap op. This
single chokepoint covers all encap types and all three redirect modes:

  - lwtunnel_input():  seg6, rpl, ila, seg6_local
  - lwtunnel_output(): ioam6
  - lwtunnel_xmit():   mpls, LWT BPF xmit

Alternatively, we could clear the metadata right after TC ingress hook.
That would require a compromise, however. Metadata would become
inaccessible from TC egress (in setups where it actually reaches the
hook it tact, that is without any L2 tunnels on path).

Fixes: 8989d328df ("net: Helper to move packet data and metadata after skb_push/pull")
Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
Link: https://patch.msgid.link/20260619-bpf-lwt-drop-skb-metadata-v3-1-71d6a33ab76b@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 19:07:23 -07:00
Linus Torvalds
840ef6c78e NFS Client Updates for Linux 7.2
New Features:
  * XPRTRDMA: Decouple req recycling from RPC completion
  * NFS: Expose FMODE_NOWAIT for read-only files
 
 Bugfixes:
  * SUNRPC: Fix sunrpc sysfs error handling
  * SUNRPC: Fix uninitialized xprt_create_args structure
  * XPRTRDMA: Harden connect and reply handling
  * NFS: Fix EOF updates after fallocate/zero-range
  * NFS: Keep PG_UPTODATE clear after read errors in page groups
  * NFS: Use nfsi->rwsem to protect traversal of the file lock list
  * NFS: Prevent resource leak in nfs_alloc_server()
  * NFSv4: Clear exception state on successful mkdir retry
  * NFSv4: Don't skip revalidate when holding a dir delegation and attrs are stale
  * pNFS: Fix use-after-free in pnfs_update_layout()
  * pNFS: Defer return_range callbacks until after inode unlock
  * pNFS: Fix LAYOUTCOMMIT retry loop on OLD_STATEID
  * pNFS: Reject zero-length r_addr in nfs4_decode_mp_ds_addr
  * NFS/flexfiles: Reject zero-length filehandle version arrays
  * NFS/flexfiles: Fix checking if a layout is striped
  * NFS/flexfiles: Fixes for honoring FF_FLAGS_NO_IO_THRU_MDS
 
 Other Cleanups and Improvements:
  * Remove the fileid field from struct nfs_inode
  * Move long-delayed xprtrdma work onto the system_dfl_long_wq
  * Convert xprtrdma send buffer free list to an llist
  * Show "<redacted>" for cert_serial and privkey_serial mount options
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEnZ5MQTpR7cLU7KEp18tUv7ClQOsFAmo64NUACgkQ18tUv7Cl
 QOvVMRAAnto2SAwqPkUf2V6dET141qKhWLRKLUqbYxkzc1PKqJBfJuJBwNWHNtyb
 M9JXpx00WSCjfksP5SyD5YugOzom1/SbMJlZB2FCBW6+LTyP/jwsBmqzWXdiKc/d
 x2pD7dkKVdjQUg8siNRLkJR4cyquySUlV39JNKHtPzhHTyWCVYqpvBcsFZwvPPPp
 TKC2ubpbu3zFlZUIYUEKMpPq44dOOlLzMzjWxMO8yTy/s/+5LsNLFRiSadr2sINp
 EWdPn2rpaQT1KmkHdklwUy8xtS+Zw0LaH0g0bVGJfd2ptiMz2VdFIFzxJkQh8jMT
 x0FkUBWDbTdVyiI0OZDo3uh/pJiKzTQI2SecE9to4rNHlNVDeOT9n8UanSYs71rz
 emXQIgszv2juiUvbSRcgzQ+SFKcxq332eDRWmpPIQox+/NvMFK+aMLS7aTd319Up
 bfVMRp5uAp5r2oVz3ETg7RDqatMJ2S0/J2HB3zVf5ONzaBaA//TUrCiSAt49Ep7a
 SsK7VXJCnxw2S23fa3RqlylZ3Gw29QiRjK7INoe8iNjLTqxAvtwcCTum7Ys+IGEl
 VVyxzBzgeGLlT4mU9BpMRZ9BZUjqgmflL8t4FwiFZQD1nZmJLwulZ8zSjIJ7OK2g
 8G8SWP3K7igEbWGCOwqqZWTtkzQC7OYR27vQuz6aPcgIS/fuMxg=
 =hj8e
 -----END PGP SIGNATURE-----

Merge tag 'nfs-for-7.2-1' of git://git.linux-nfs.org/projects/anna/linux-nfs

Pull NFS client updates from Anna Schumaker:
 "New features:
   - XPRTRDMA: Decouple req recycling from RPC completion
   - NFS: Expose FMODE_NOWAIT for read-only files

  Bugfixes:
   - SUNRPC:
      - Fix sunrpc sysfs error handling
      - Fix uninitialized xprt_create_args structure
   - XPRTRDMA:
      - Harden connect and reply handling
   - NFS:
      - Fix EOF updates after fallocate/zero-range
      - Keep PG_UPTODATE clear after read errors in page groups
      - Use nfsi->rwsem to protect traversal of the file lock list
      - Prevent resource leak in nfs_alloc_server()
   - NFSv4:
      - Clear exception state on successful mkdir retry
      - Don't skip revalidate when holding a dir delegation and attrs are stale
   - pNFS:
      - Fix use-after-free in pnfs_update_layout()
      - Defer return_range callbacks until after inode unlock
      - Fix LAYOUTCOMMIT retry loop on OLD_STATEID
      - Reject zero-length r_addr in nfs4_decode_mp_ds_addr
   - NFS/flexfiles:
      - Reject zero-length filehandle version arrays
      - Fix checking if a layout is striped
      - Fixes for honoring FF_FLAGS_NO_IO_THRU_MDS

  Other cleanups and improvements:
   - Remove the fileid field from struct nfs_inode
   - Move long-delayed xprtrdma work onto the system_dfl_long_wq
   - Convert xprtrdma send buffer free list to an llist
   - Show "<redacted>" for cert_serial and privkey_serial mount options"

* tag 'nfs-for-7.2-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (42 commits)
  NFS: Use common error handling code in nfs_alloc_server()
  NFS: Prevent resource leak in nfs_alloc_server()
  NFSv4/pNFS: reject zero-length r_addr in nfs4_decode_mp_ds_addr
  nfs: don't skip revalidate on directory delegation when attrs flagged stale
  xprtrdma: Return sendctx slot after Send preparation failure
  xprtrdma: Repost Receive buffers for malformed replies
  xprtrdma: Sanitize the reply credit grant after parsing
  xprtrdma: Fix bcall rep leak and unbounded peek
  xprtrdma: Resize reply buffers before reposting receives
  xprtrdma: Check frwr_wp_create() during connect
  xprtrdma: Initialize re_id before removal registration
  xprtrdma: Fix ep kref imbalance on ADDR_CHANGE
  xprtrdma: Convert send buffer free list to llist
  NFS: correct CONFIG_NFS_V4 macro name in #endif comment
  nfs: use nfsi->rwsem to protect traversal of the file lock list
  NFSv4.1/pNFS: fix LAYOUTCOMMIT retry loop on OLD_STATEID
  nfs: expose FMODE_NOWAIT for read-only files
  nfs: add nowait version of nfs_start_io_direct
  NFSv4/flexfiles: honor FF_FLAGS_NO_IO_THRU_MDS in pg_get_mirror_count_write
  NFSv4/flexfiles: honor FF_FLAGS_NO_IO_THRU_MDS on fatal DS connect errors
  ...
2026-06-23 18:36:41 -07:00
Linus Torvalds
09ca8dc7d6 f2fs-for-7.2-rc1
In this round, the changes primarily focus on filesystem error reporting,
 reducing memory footprint by reverting in-memory data structures used for
 runtime validation, honoring FDP hints, and adding trace and debug logs.
 In addition, there are critical bug fixes resolving out-of-bounds read
 vulnerabilities in inline directory and ACL handling, potential deadlocks
 in balance_fs, use-after-free issues in atomic writes, and false data/node
 type assignments in large sections.
 
 Enhancement:
  - Revert  in-memory sit version and block bitmaps
  - support to report fserror
  - add trace_f2fs_fault_report
  - add iostat latency tracking for direct IO
  - add logs in f2fs_disable_checkpoint()
  - honor per-I/O write streams for direct writes
  - map data writes to FDP streams
  - skip inode folio lookup for cached overwrite
  - skip direct I/O iostat context when disabled
  - revert "check in-memory block bitmap"
  - revert "check in-memory sit version bitmap"
 
 Bug fix:
  - optimize representative type determination in GC
  - fix incorrect FI_NO_EXTENT handling in __destroy_extent_node()
  - fix potential deadlock in f2fs_balance_fs()
  - fix potential deadlock in gc_merge path of f2fs_balance_fs()
  - atomic: fix UAF issue on f2fs_inode_info.atomic_inode
  - fix missing read bio submission on large folio error
  - pass correct iostat type for single node writes
  - fix to do sanity check on f2fs_get_node_folio_ra()
  - validate orphan inode entry count
  - keep atomic write retry from zeroing original data
  - read COW data with the original inode during atomic write
  - validate inline dentry name lengths before conversion
  - validate dentry name length before lookup compares it
  - reject setattr size changes on large folio files
  - revert "remove non-uptodate folio from the page cache in move_data_block"
  - validate ACL entry sizes in f2fs_acl_from_disk()
  - bound i_inline_xattr_size for non-inline-xattr inodes
  - fix listxattr handling of corrupted xattr entries
  - fix to round down start offset of fallocate for pin file
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE00UqedjCtOrGVvQiQBSofoJIUNIFAmo5sQwACgkQQBSofoJI
 UNIB7g/+IMAr2UVWdpZ88Uho58GvkkIuZceoZoPuSfUi1hTy0o4+wxeo2ecO06v6
 pDlxivkWXRDpdW1iXbUqcmk2HKEsM3ysWb6jvsFXz+eC4QeWKQJ2uZTyLpEVpW2j
 phXv3TwENPEkku2Mncv907hqUZG/SBxJ2H7jcxb0jHRoaLUwZHuGF0VU/MEodyuy
 ZJifGI3BMwm7Gu2GXwuliDBjbUHRaBs+8kYQ21NZGv0FuQsCNQ+bLhWz3q4FVfg6
 nt5FStKgfoKPHIhamltP6uc4E4KlNDtFgKxluEfzrVqxqvHvUpBxj718DtZLbpNN
 zD6PUHCI0MU0L7qW+RVJx8TOaceYB5xHVcNi8d+CDQPCJgG0LV0ilykqzQ4LRSob
 JcPIjEVkrIgNSzYh/PcDHkUBZmt3MiZZf6xaxviqxDoPqyY6TFATF27ZIZbc7jSa
 hF4XO6mNtbDLhSIMrFUXBnGfnKvIK42OyM5aFLEMxBm7akYYr64h+r6mR+apjDb1
 4FQ1YIuKfIHm7DuphUiazmyOV7P4kcOGYbqyiOk/HNxf6Cc3/kOXKTRZq00ORNbX
 X0FXUOy94xrrjdqoWTldv2o4I49zf8RAEBNLAxDneV2qXsITQtsHWUXp5BbKdA0Q
 7nyUBUTOdDvUq3qyXXA9BIKWdTr0XeGGp/z8rrVR0aT6ksqiTzM=
 =YvkR
 -----END PGP SIGNATURE-----

Merge tag 'f2fs-for-7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs

Pull f2fs updates from Jaegeuk Kim:
 "The changes primarily focus on filesystem error reporting, reducing
  memory footprint by reverting in-memory data structures used for
  runtime validation, honoring FDP hints, and adding trace and debug
  logs. In addition, there are critical bug fixes resolving
  out-of-bounds read vulnerabilities in inline directory and ACL
  handling, potential deadlocks in balance_fs, use-after-free issues in
  atomic writes, and false data/node type assignments in large sections.

  Enhancements:
   - Revert  in-memory sit version and block bitmaps
   - support to report fserror
   - add trace_f2fs_fault_report
   - add iostat latency tracking for direct IO
   - add logs in f2fs_disable_checkpoint()
   - honor per-I/O write streams for direct writes
   - map data writes to FDP streams
   - skip inode folio lookup for cached overwrite
   - skip direct I/O iostat context when disabled
   - revert "check in-memory block bitmap"
   - revert "check in-memory sit version bitmap"

  Fixes:
   - optimize representative type determination in GC
   - fix incorrect FI_NO_EXTENT handling in __destroy_extent_node()
   - fix potential deadlock in f2fs_balance_fs()
   - fix potential deadlock in gc_merge path of f2fs_balance_fs()
   - atomic: fix UAF issue on f2fs_inode_info.atomic_inode
   - fix missing read bio submission on large folio error
   - pass correct iostat type for single node writes
   - fix to do sanity check on f2fs_get_node_folio_ra()
   - validate orphan inode entry count
   - keep atomic write retry from zeroing original data
   - read COW data with the original inode during atomic write
   - validate inline dentry name lengths before conversion
   - validate dentry name length before lookup compares it
   - reject setattr size changes on large folio files
   - revert "remove non-uptodate folio from the page cache in move_data_block"
   - validate ACL entry sizes in f2fs_acl_from_disk()
   - bound i_inline_xattr_size for non-inline-xattr inodes
   - fix listxattr handling of corrupted xattr entries
   - fix to round down start offset of fallocate for pin file"

* tag 'f2fs-for-7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (42 commits)
  f2fs: fix to round down start offset of fallocate for pin file
  f2fs: fix listxattr handling of corrupted xattr entries
  f2fs: skip direct I/O iostat context when disabled
  f2fs: remove unneeded f2fs_is_compressed_page()
  f2fs: avoid unnecessary fscrypt_finalize_bounce_page()
  f2fs: avoid unnecessary sanity check on ckpt_valid_blocks
  f2fs: misc cleanup in f2fs_record_stop_reason()
  f2fs: fix wrong description in printed log
  f2fs: bound i_inline_xattr_size for non-inline-xattr inodes
  f2fs: validate ACL entry sizes in f2fs_acl_from_disk()
  Revert "f2fs: remove non-uptodate folio from the page cache in move_data_block"
  f2fs: Split f2fs_write_end_io()
  f2fs: Rename f2fs_post_read_wq into f2fs_wq
  f2fs: Prepare for supporting delayed bio completion
  f2fs: reject setattr size changes on large folio files
  f2fs: validate dentry name length before lookup compares it
  f2fs: validate inline dentry name lengths before conversion
  f2fs: read COW data with the original inode during atomic write
  f2fs: skip inode folio lookup for cached overwrite
  f2fs: keep atomic write retry from zeroing original data
  ...
2026-06-23 17:59:36 -07:00
Linus Torvalds
bade58eb06 - Prevent NULL dereference on theoretical missing IO bitmap
(Li RongQing)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmo6wFMRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1hOmBAAsFd4cotcp2OQt0Cn6ZNMt1WwoJc5Qplw
 RCMEuTzWmf5zIjCOYXNHNd4lDKKTvMQr3BKOX7oG8noZgnYXxdMlhvN4j9y0Pc0h
 UXIXamzGRzI+2I4kSLL2iee3/utj1Srs19g5ONtaHkJEiH37mw00BIJVgE51TT5t
 6KDMbdHZ2ZmtDjtD7BEdecVrhpKLVejFHIpljPJ8GGVPC6QmrF91d+Lv7r2B0IjR
 3WlDHHXbRvDNbd6r0wvlIbxOUEwUtYMCDIErvohfN2ZU/HVNKivJ42L4dgG8yx5q
 q8ZLbmI15Qa2vEcMesr8liXqT992INMvn+TjCJ0huY3qoyRvf285Xla3DKaA50rL
 1btj9c0i4O6GfKN568nwx+K5YGWb2EH1s79vs3VmG6L6pmnX8CGawMRBDIXY2+qQ
 kFfWsiFCid3TDTwoA1bkOpakNM77d4BAAvYg7yGxlN2wYWiddN8slx77iunDhw+s
 xCi7rQ5Kb35SfWAg3DiKHd5wqptvpK/EkgwCVfzkLf6VFxqFPdaiP4bDn23daUP7
 XhUo3symJ8KLh1bLlR1DLgyzRp5t5yW3/Rocs7RS1h1bTvd96vF04PEQncH5c6Lw
 bB8AXKnB3am1AmBfWbQ3kg/AQJV1tlgCkCozjr990uSVgwRAy1XigioPn/y/eNPW
 pBqWCO4B7aA=
 =mOJb
 -----END PGP SIGNATURE-----

Merge tag 'x86-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fix from Ingo Molnar:

 - Prevent NULL dereference on theoretical missing IO bitmap (Li
   RongQing)

* tag 'x86-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/ioperm: Prevent NULL dereference on theoretical missing IO bitmap
2026-06-23 17:16:31 -07:00
Linus Torvalds
541643982b Miscellaneous timer fixes:
- Fix timekeeping locking order bug in the timekeeping init code
    (Mikhail Gavrilov)
 
  - Fix u64 multiplication bug in the posix-cpu-timers code
    on 32-bit kernels (Zhan Xusheng)
 
  - Fix macro name in comment block (Ethan Nelson-Moore)
 
  - Fix off-by-one bug in the compat settimeofday() usecs
    validation code (Wang Yan)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmo6v6cRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1iSVQ//RCLIhw+fUmcGrjN0E/MX8cFsg0ED3+PS
 3Dfi6mNY+vU5y2my+Mg8zMRw0m2xgnTs1rFeF8x9y2X6bbitoYePi/WomT4+uX/v
 Jj/EEfdbTBqvpZbfKiLN2GGwQJyVox5oRwEwKY1ik/xUFNxCqRxmELrNCUwU0Lwg
 b9UNjebX5WjtDufc0cw2RiBUNuAcAyE7gSqaf1IMyJTygS6l0iMQMkI6Xd8KHB+g
 LXRpB4V5RvFncCV6b81/9pKJzSM6EYdysKod/wi0kq0muxBlk+iiE7zdaiTKjzp5
 y/ItEStuNIQn/NAUYUX4ui1I9wRqYMrnNzvUFYLYWySpAU7V9GuyflB08RvXZpWb
 Gp6LtsZy192liyDvSUrYpQBnfkjKAPXxy3FrcnnI95U86UloXSMBvI+aQCHdFyt6
 TJpgkZM0fn7kjb9i/CB5Vyvrwu7iN+gm8lFtpu5DRHNzIVPvk/C4pyaM5Za/z68k
 dZ0Wv7pZzhLBjIxERzuMhr4YI6PG/DyFNz17JKiNr5S5sKk8q/pNhH3Ki99aaz5y
 IykkevHVgldp7/Zz91ixvLP3BYyFRx6++Bl1DOZyN/JAzAukuu2vBgaGnvzqfs5z
 7K5nqaouPNvvYbyCmb8bU9FtZUuHForN9LDQ3QGRYhQsVQH+u2FbEeFjfB8NQdOI
 llNA4FZgVUc=
 =dSO3
 -----END PGP SIGNATURE-----

Merge tag 'timers-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull misc timer fixes from Ingo Molnar:

 - Fix timekeeping locking order bug in the timekeeping init code
   (Mikhail Gavrilov)

 - Fix u64 multiplication bug in the posix-cpu-timers code on 32-bit
   kernels (Zhan Xusheng)

 - Fix macro name in comment block (Ethan Nelson-Moore)

 - Fix off-by-one bug in the compat settimeofday() usecs validation code
   (Wang Yan)

* tag 'timers-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  time: Fix off-by-one in compat settimeofday() usec validation
  hrtimer: Correct CONFIG_NO_HZ_COMMON macro name in comment
  posix-cpu-timers: Use u64 multiplication in update_rlimit_cpu()
  timekeeping: Register default clocksource before taking tk_core.lock
2026-06-23 16:57:39 -07:00
Linus Torvalds
83db48fb03 Misc CPU hotplug fixes:
- Fix CPU hotplug error handling rollback bug
    (Bradley Morgan)
 
  - Fix possible output OOB write bug in the sysfs
    hotplug states printing code (Bradley Morgan)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmo6vV4RHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1gnTQ//aiMJIdWbtSusi24hgGo1rCy+xUcezPPq
 6C8MeR26ANvlr1fHmf2N2FV11zEA/XfEgJSf1Vyi+I0csOn5gGrIXgbMKpAi0+YK
 hVi4pndad3YJ5LReT/TeTb0bYXHz9SkAYcRHWB9U3giCQsYHhdu/f3emia8DW/Ll
 OlpS+XI07xlUS/2/M86OkshK9AkssJFU6sv9PY3kebCxgZhdeK9J2LSGTf+jDOC3
 rmHGGPD6QUGK34rxd6uaxjo3FnAB6QshALAvb1AtZkcKzz0fO3sHOCouxKWdEc+L
 l7qhfEJi1uHnoaYCx5X+50XdLnSsGwHU1fMn0EZ3dvbm0qE6BxSr4fvZ+iouy4bs
 p3xzk39aeTmNJhXNFKnlLyhd9otORS78QKrHPblVY3+PuFL8Xob0dEcHyGywja3g
 KBBpATOebWLv6Qr02KwWEsDrBLtbWyNNHYSNUjmpvBdaV7vH+sGZ3N3jz6ADp8CR
 2hiKdJZvcSGOxDjRpwAXSsTiKQNrWAGFbz3wQFB0fupYJgWfP0MrUg8i8wEkbfqy
 FHF47rNpYKDmWJMLXmCFxOo+YeWHE7MuFesf4SpDp3c+WhrjkMcA/6l/IjycyXze
 GH21Wipu2YkIxZ/4FEdVHDgpozkHlIParBUip6t2i9RNKkcLodg18OCYmFk0MWCM
 UzOkVoD9sq8=
 =2MfA
 -----END PGP SIGNATURE-----

Merge tag 'smp-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull misc CPU hotplug fixes from Ingo Molnar:

 - Fix CPU hotplug error handling rollback bug (Bradley Morgan)

 - Fix possible output OOB write bug in the sysfs hotplug states
   printing code (Bradley Morgan)

* tag 'smp-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  cpu: hotplug: Bound hotplug states sysfs output
  cpu: hotplug: Preserve per instance callback errors
2026-06-23 16:43:24 -07:00
Linus Torvalds
d88eb9b843 - Fix event::addr_filter_ranges lifetime bug (Peter Zijlstra)
Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmo6vAQRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1jXbg/9F1Uv4AjgiEme2lBe2IFjdfT7ETjJobY2
 PTEyxG5dY2rUPCgoom2cesHnAx0XjLXGZAm4gGdy0iApi9UMNqtrk4EH5lf3j5c4
 x1KUUnvMcxbOxVR/Dcf0d9+AOeA9U8uv63+ANCNi3wSn13jT9d86Gf/ddrAwy70L
 MooAbNrz+v0EWeKWfWU4B1IYRDgMCXdX697J1cajcqaQU274QhgnsfhNaVPFCHdL
 Jlolea6gVlBmEhjHaqP1yGrh0ANCSBm5ti81CF++8Y4C/QzeJJ7W8vAD7kATjK1l
 6hHgu9JZG7rLy0zBYUll9ODjvKQ35SQ5QEGU0EuKElQcZfkvbn63vqxjcih0/ZqG
 DbaOpZacF7cDU747O2wpYukQPo220Qkfdh4SpyB+E9pSKAHff7Ap0Aq8xVsNmRCG
 PbjIcUgHiWN73ulCmfz/UpxXPo8K8VgX5Jvuwl5MCwkMD0M9EbTq4xMSCgPlcYkz
 KG9jSPO7o3Lh+B0nvzPWOTsPGchqxt1WZSHNDVKpYkH0/4wuBl3odSE/McIcmGqs
 rdC5uk23Ke2ivUtHSKfrC0bB7BdBDdwRRczPrxm5tXJiEZkhA6G8mnXUgqxWDS63
 mlPse0HhtSro7gHyp5kJHyCYHu9WBeSRAr+aVUkAOPBbhdmMAi83/4iML9qwSQ2u
 5HRKf/FJr4o=
 =SNXq
 -----END PGP SIGNATURE-----

Merge tag 'perf-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf event fix from Ingo Molnar:

 - Fix event::addr_filter_ranges lifetime bug (Peter Zijlstra)

* tag 'perf-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf: Fix addr_filter_ranges lifetime
2026-06-23 16:25:23 -07:00
Jakub Kicinski
e9deb406c1 ipsec-2026-06-22
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEH7ZpcWbFyOOp6OJbrB3Eaf9PW7cFAmo4560ACgkQrB3Eaf9P
 W7fDNg//WWYvJgff2nGNHa0cqm2PGbwlfD8xEyc5d9nn/sz5yO+1BzN6junxAd7b
 U9PE2Y1Zgh8E43TjqCsWebyv6D4/T6X/iIJXEzPoMZeJnBxLHxGf66ThKaQ8RuDH
 sKaOBexllkfrluSyvdL3vpJUS04bbvyBpLFWsaKIsy0hFMSIBRYWv2Z+HF8RBzTb
 YqAsG1bFOKhBxbbj5CXh6Wuc8PFRMoXlrzWjsMKa9KGkXDbIitvdO/t8cc3ZXo9g
 YE5iz8+poJDy+Uvn74TJ5P5w6jhkTtBliJ13Hckoq5th/5USE92c9ZtVqqCCjB2h
 TL3ChPRn3O2FfBaNYZBHqKXEBpgFF91FPlCTviZKtavDTuNVij432XeYKXU7ZBUW
 dNVPHkbylYjNKaFftLFSKIj644aWLCSrit7Uoz07eeMOn7Ef7pkv6VAnDMBCrS5i
 jwH7FJHyTH7cw21SqB20Q8rlpipeBbSl4Z4gCePBomXXgRkgQqQddOtfCTl25xtF
 vLQiAEU8oVUNQ7z41CBR70S6psfxQn+Od9z2UACv1d8yOEt+cWnK/mmxYL8qq6Jz
 2sx753Z7UWcPLOQVbpgh4CxJuA1wjqlip7Evi1bFdeY3NM+o9PZ2NfFzBOWS6ZXH
 ZgEqHVHcYiKqUb59m6LDcLG+AzDmHBJUk7o3w9tr0rqVhN+eLkA=
 =LFlA
 -----END PGP SIGNATURE-----

Merge tag 'ipsec-2026-06-22' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec

Steffen Klassert says:

====================
pull request (net): ipsec 2026-06-22

1) xfrm: use compat translator only for u64 alignment mismatch
   Gate the XFRM_USER_COMPAT translator on COMPAT_FOR_U64_ALIGNMENT
   so 32-bit compat tasks on arches whose 32-bit ABI already matches
   the native 64-bit layout are no longer rejected with -EOPNOTSUPP.
   From Sanman Pradhan.

2) net: af_key: initialize alg_key_len for IPComp states
   Initialize the alg_key_len to 0 in the IPComp branch of
   pfkey_msg2xfrm_state() so an uninitialized value cannot drive
   xfrm_alg_len() into a slab-out-of-bounds kmemdup during
   XFRM_MSG_MIGRATE. From Zijing Yin.

3) xfrm: Fix dev use-after-free in xfrm async resumption
   Stash the original skb->dev and extend the RCU critical section
   across xfrm_rcv_cb() and transport_finish() to prevent a
   tunnel-device UAF and original-device refcount leak when a
   callback replaces skb->dev. From Dong Chenchen.

4) xfrm: Fix xfrm state cache insertion race
   Move the state-validity check inside xfrm_state_lock in the
   input state cache insertion path so a state cannot be killed
   between the check and the insert. From Herbert Xu.

5) xfrm: annotate data-races around xfrm_policy_count[] and xfrm_policy_default[]
   Add READ_ONCE()/WRITE_ONCE() annotations on xfrm_policy_count
   and xfrm_policy_default to silence the KCSAN data race reported
   on net->xfrm.policy_count. From Eric Dumazet.

6) espintcp: use sk_msg_free_partial to fix partial send
   Replace the manual skmsg accounting in espintcp with
   sk_msg_free_partial() so the skmsg stays consistent on every
   iteration and the partial-send accounting bugs go away.
   From Sabrina Dubroca.

7) xfrm: validate selector family and prefixlen during match
   Reject mismatched address families in xfrm_selector_match() and
   bound prefixlen in addr4_match()/addr_match() to prevent the
   shift-out-of-bounds syzbot reported when an AF_UNSPEC selector
   with a large prefixlen is matched against an IPv4 flow.
   From Eric Dumazet.

* tag 'ipsec-2026-06-22' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec:
  xfrm: validate selector family and prefixlen during match
  espintcp: use sk_msg_free_partial to fix partial send
  xfrm: annotate data-races around xfrm_policy_count[] and xfrm_policy_default[]
  xfrm: Fix xfrm state cache insertion race
  xfrm: Fix dev use-after-free in xfrm async resumption
  net: af_key: initialize alg_key_len for IPComp states
  xfrm: use compat translator only for u64 alignment mismatch
====================

Link: https://patch.msgid.link/20260622075726.29685-1-steffen.klassert@secunet.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-23 16:22:24 -07:00
Linus Torvalds
d1c4b50f88 - Fix the incorrect RCU protection in rt_spin_unlock()
(Thomas Gleixner)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmo6u1wRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1inTg/+K9TZr6kE3/Q53VSpGZfk40+Fsrt87Wq1
 Bx9u6jsvSGQ2JuchwcPyQB15/zMHrRsEAZ5+oLm7ZI7faCe2EuyrYPuQ02eH1rzI
 7lKYJhW//hV6GbtnFdF0WcTHIHpRS6jaiMToxbiX+jrR+vuTBdSALXjyJuZsc36v
 9IpdJrA7c7UU5FDC1uHOGzQihf3Zij3+FF1CK/wl91NOSU/mzDZ0lb+LRxvnFUsR
 RqMMwYZGKWlw6JHA3cu1lFBqodQlpr/AP2usOTHC2L7+1zrQwnBXNOC3ZPy14gKd
 cSD2KzF/cbjdI+JyoYkWwTp6xeSONpylFbBNOu2uocI0czcASLAtfUN6sxqLk+DQ
 9oLCwPDtpTA9IfpQYPhQt+Kt8Sh2o8YNRQIt1ihZ7KAgBfOUYnBGBzxeK3TIfOlS
 kLW2I1i1UxdYN1FQSzZ/3IQEMQyYEzO/W3A5jr1Rr7k0duZJPCq6Hjt3W58IlS9q
 91kre98ARMBJkZ2zQAuXXk9zWA2NpjYNck9vWvBIswFLx6nUc+GqSNZ7+TWBJTgy
 8V5urP6Y0zqrLuafwf5fvxviTVXwuXt+3qUYKgRIBUIRk59RbpuMwQhb/d2RGW8X
 qKdjvp8nSdTbYdYxOCOt/gngsZmifeXVTIT/iWMCGpArILdijJHwFs3labFpXthi
 dUEim9WgfiE=
 =6OD/
 -----END PGP SIGNATURE-----

Merge tag 'locking-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull locking fix from Ingo Molnar:

 - Fix the incorrect RCU protection in rt_spin_unlock() (Thomas
   Gleixner)

* tag 'locking-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  locking/rt: Fix the incorrect RCU protection in rt_spin_unlock()
2026-06-23 16:15:53 -07:00
Linus Torvalds
90ae888a37 Misc fixes:
- Fix an MM-CID race that can cause an OOB write
    (Rik van Riel)
 
  - Fix a debugobjects OOM handling race (Thomas Gleixner)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmo6t3URHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1iXwg/8CPIGhMJBMG97dl+m3Iq6RlzSNCTU6+Ho
 AClN/+jtduU/sEedvFC150Yvjhe1p78hHkVuFyu4hvZaevFg4v70vz0TpsfOWS4p
 wvKxEZpuhmDJTPBx8ZWq8oD+ZgKr0VVr0PQcHHiHggDKbb5UEY4H8SDHSx8bcJqg
 2iq4NuOYZX+PRAmsPg0MAhpnfHiYkz2HPoLwDXkol0G53WMAzsKxroLO9bXni7WJ
 PI+ru3WmecjqTaDDUgQO0LabLnl7vuEjsIQEK4tfQqlMWwepsrURcxNuL/61S38d
 cmn4b2vnJ8G2pjLiKKv4imVdfrUh1TsoG7JakezTad+OQeKlThbkmdIST/FW5ey7
 roI8Ux1+/S1G9orgbI+buNC1G5/Bi4RH7Y20DzjvlWRXc89OVsybBJn6owIgZgSS
 ksGnsfBxbds9ErtKdp5aGhtJ9IKfIAO9OsoJh9gNxIyuqV0F03FDI5Tq7zuw/zPz
 faEFHH9uTlBjEQbJAlpJ2Z4M4nNyMj8OMhZgw/kxq6ogJDa49kr0hnGdhd2b18v6
 kNXkXERPoreKdkjeRC4/qwuhIxMSLISHDZEEt2gk2Rrl8ly62rMhOfn7BV4ffHnO
 6/YasPW1iBLH4h6l8yoi3k8YEmjO0s+mEoMINxkdChJWot7EplsxUyWcziRMxkpi
 Be5441cyO9o=
 =bywo
 -----END PGP SIGNATURE-----

Merge tag 'core-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull misc core fixes from Ingo Molnar:

 - Fix an MM-CID race that can cause an OOB write (Rik van Riel)

 - Fix a debugobjects OOM handling race (Thomas Gleixner)

* tag 'core-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  debugobjects: Plug race against a concurrent OOM disable
  sched/mmcid: Fix OOB clear_bit when CID is MM_CID_UNSET in fixup path
2026-06-23 16:05:54 -07:00
Linus Torvalds
b59e4cae34 Miscellaneous irqchip driver fixes:
- Fix indexing bug in the Crossbar irqchip driver (Bhargav Joshi)
 
  - Fix a parent domain resource leak in the Crossbar irqchip
    driver (Bhargav Joshi)
 
  - Fix resource leak in the ImgTec PDC irqchip driver's
    exit logic (Qingshuang Fu)
 
  - Fix macro name in comment block (Ethan Nelson-Moore)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmo6uY4RHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1iKog//dYOjM3UyRcecFWMyadpr0azxdz0PxJ1C
 m3xWcoMryId/TTxW2LBCbefNEDUeOqBDvJuTeBTUD0TJGSWojwv9UkgPejUeOh5F
 gq3GhC09/EgxTW5wKQHdr063ThwG5IJ5gWWIBHWWg1fPRlwxd+KK+20k+gEC/rYa
 Q09KxytygS+NN5JsQRH8XIc+4lTFrSwhg6aFp3pyveHSlQ+qlo0c4t71xywAEA/6
 llw2i1915XMeRyJug4S8iMQfHBxbdVzNKxyWqwcHH1f6D9IC/Ja/JttEBnMNKXUG
 wlhZttUicwvnF0nPWWHsQkU+ecw0zsLqHg48Fk8OYswFPbxtwjCoAstMVrCDSLCH
 iwuQzWzlBKjTqtYIyaii0fjcsEj/iDQrVlMT54obLleVNn6IdtxiAqbbGv6nmMoV
 25id7IWd8JrKQWbflFnw6S55+/Ja12OnJmc285khwmInzvqRFwo+B8kZqvtJ0YJa
 JPumM1QoMum9Hv9R19PtBdWpzO4fj7lhGx+lUjH7UKknf0ZSme+zhtd7B42I1JJ0
 R5EKbC+5G6Rkbih/4ymL163dZH7//RL749Y3BGmg5fYURrdByqPSGRR1B9GZL+Tr
 +ki6hzDLNwSQ9qFHxeDplLJAzbaMrvIKTTFKhAzq6JWeJ5Ygkoyv+IjxmRLzmvMk
 CZNe1FsUV/U=
 =cDRs
 -----END PGP SIGNATURE-----

Merge tag 'irq-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull misc irqchip driver fixes from Ingo Molnar:

 - Fix indexing bug in the Crossbar irqchip driver (Bhargav Joshi)

 - Fix a parent domain resource leak in the Crossbar irqchip driver
   (Bhargav Joshi)

 - Fix resource leak in the ImgTec PDC irqchip driver's exit logic
   (Qingshuang Fu)

 - Fix macro name in comment block (Ethan Nelson-Moore)

* tag 'irq-urgent-2026-06-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  genirq/msi: Correct CONFIG_PCI_MSI_ARCH_FALLBACKS macro name in comment
  irqchip/imgpdc: Fix resource leak, add missing chained handler cleanup on remove
  irqchip/crossbar: Fix parent domain resource leak
  irqchip/crossbar: Use correct index in crossbar_domain_free()
2026-06-23 16:02:03 -07:00
Namjae Jeon
da793cf6d6 ksmbd: fix kernel-doc warnings in smb2_lease_break_noti()
kernel test robot report missing kernel-doc descriptions for the 'wait_ack'
and 'inc_epoch' parameters of smb2_lease_break_noti():

  Warning: fs/smb/server/oplock.c:937 function parameter 'wait_ack' not
   described in 'smb2_lease_break_noti'
  Warning: fs/smb/server/oplock.c:937 function parameter 'inc_epoch' not
   described in 'smb2_lease_break_noti'

Document both parameters to silence the warnings.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
2026-06-23 17:52:42 -05:00
Namjae Jeon
f455ea21f2 ksmbd: fix inconsistent indenting warnings
Detected by Smatch.

   fs/smb/server/oplock.c:1446 smb_grant_oplock()
   warn: inconsistent indenting

Reported-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
2026-06-23 17:52:42 -05:00
Haofeng Li
954d196beb ksmbd: validate NTLMv2 response before updating session key
ksmbd_auth_ntlmv2() derives the NTLMv2 session key into
sess->sess_key before it verifies the NTLMv2 response.
ksmbd_decode_ntlmssp_auth_blob() then continues into KEY_XCH even
when ksmbd_auth_ntlmv2() failed.

With SMB3 multichannel binding, the failed authentication operates on
an existing session and the session setup error path does not expire
binding sessions. A client can send a binding session setup with a
bad NT proof and KEY_XCH and still modify sess->sess_key before
STATUS_LOGON_FAILURE is returned.

Relevant path:

  smb2_sess_setup()
    -> conn->binding = true
    -> ntlm_authenticate()
       -> session_user()
       -> ksmbd_decode_ntlmssp_auth_blob()
          -> ksmbd_auth_ntlmv2()
             -> calc_ntlmv2_hash()
             -> hmac_md5_usingrawkey(..., sess->sess_key)
             -> crypto_memneq() returns mismatch
          -> KEY_XCH arc4_crypt(..., sess->sess_key, ...)
    -> out_err without expiring the binding session

Derive the base session key into a local buffer and copy it to
sess->sess_key only after the proof matches. Return immediately on
authentication failure so KEY_XCH is only processed after successful
authentication.

Fixes: e2f34481b2 ("cifsd: add server-side procedures for SMB3")
Fixes: f9929ef6a2 ("ksmbd: add support for key exchange")
Cc: stable@vger.kernel.org
Signed-off-by: Haofeng Li <lihaofeng@kylinos.cn>
Reviewed-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
2026-06-23 17:52:42 -05:00
Linus Torvalds
558ef39aeb dmaengine updates for v7.2
Core:
   - New devm_of_dma_controller_register() API
   - Refactor devm_dma_request_chan() API
 
  New Support:
   - Loongson Multi-Channel DMA controller support
   - Renesas RZ/{T2H,N2H} support
   - Dw CV1800B DMA support
   - Switchtec DMA engine driver
 
  Updates:
   - Xilinx AXI dma binding conversion
   - Renesas CHCTRL register read updates
   - AMD MDB Endpoint and non-LL mode Support
   - AXI dma handling of SW and HW cyclic transfers termination
   - Intel ioatdma and idxd driver updates
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+vs47OPLdNbVcHzyfBQHDyUjg0cFAmo6sxgACgkQfBQHDyUj
 g0dHYxAAnfgp9yRlNhIxCeajThDPiK/syPIgznUjPN6DtCxiNaBYVvrK8leHirSn
 1cRcCpI31HCZJeKTUFOEynD4iiF/OKwymQwhvoaAYo+tP63aBZ7fx2h9mSNTVMVJ
 656EgebhNeukEuFTWZvURVsfjMnqhYYTvbLuZMHKpEL64N688wTHlWaKCDkvaUmD
 tZbpSXrznEIVHrP4Ta28LLoMBazQr+7qzmWDlapAybwrsL5ZTtbPg/xrHm1jfwHD
 6/YQiz8WE+wK3so2gbQXDWRxYIAKEeFgBpMEidBJJABIuOFkHnrZNfnjc1Hppj1W
 tAxc9N5exf1EphnozWb0NtE+Gh1UOiMvtT/QJ0EUJJrj5+YzEe4MCmXoaVokR+c+
 PgPetgrtM37pGVtEOARGXhPFhNN76MDq3MsymsjSr+QVOQcWK8QpP68TCDBH7ZTo
 JUZ2NhnCSa3Ee7FwvvubmvtVkfY/PiDdTgZjlUldY4GM0OxzXQ64Vib/m8qwpvAI
 4zOJhFJ+3HpeHa6rAR915VH4cOdBfTpQy3jfBK/zDZ5wby7PYJu5ZP/P5K2fOa08
 oJOxob1V2NeRa++pnsd9wRJMeA5YdhhCqLs2mmwU2AWomz15Gx7PPBscOrpFBWZN
 TY3Gz0SANilP1UwecZ3343M5ol5x5q30+xSeUKZpMiCKj7RX89Q=
 =2N6N
 -----END PGP SIGNATURE-----

Merge tag 'dmaengine-7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine

Pull dmaengine updates from Vinod Koul:
 "Core:
   - New devm_of_dma_controller_register() API
   - Refactor devm_dma_request_chan() API

  New Support:
   - Loongson Multi-Channel DMA controller support
   - Renesas RZ/{T2H,N2H} support
   - Dw CV1800B DMA support
   - Switchtec DMA engine driver

 U pdates:
   - Xilinx AXI dma binding conversion
   - Renesas CHCTRL register read updates
   - AMD MDB Endpoint and non-LL mode Support
   - AXI dma handling of SW and HW cyclic transfers termination
   - Intel ioatdma and idxd driver updates"

* tag 'dmaengine-7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (62 commits)
  dt-bindings: dma: snps,dw-axi-dmac: Add fallback compatible for CV1800B
  MAINTAINERS: dmaengine/ti: Remove myself and add Vignesh as maintainer
  dmaengine: qcom: Unify user-visible "Qualcomm" name
  dt-bindings: dma: qcom,gpi: Document GPI DMA engine for Shikra SoC
  dmaengine: qcom: hidma: use sysfs_emit() in sysfs show callbacks
  dmaengine: dw-axi-dmac: fix PM for system sleep and channel alloc
  dmaengine: dw-axi-dmac: drop redundant DMAC enable in block start
  dmaengine: altera-msgdma: Use memcpy_toio for descriptor FIFO writes
  dt-bindings: dma: fsl-edma: add dma-channel-mask property description
  dmaengine: tegra: Fix burst size calculation
  dmaengine: iop32x-adma: Remove a leftover header file
  dmaengine: dma-axi-dmac: use DMA pool to manange DMA descriptor
  dmaengine: dma-axi-dmac: Drop struct clk from main struct
  dmaengine: dma-axi-dmac: Properly free struct axi_dmac_desc
  dmaengine: Fix possible use after free
  dmaengine: dw-edma: Add spinlock to protect DONE_INT_MASK and ABORT_INT_MASK
  dmaengine: dw-edma-pcie: Reject devices without driver data
  dmaengine: sh: rz-dmac: Add DMA ACK signal routing support
  irqchip/renesas-rzv2h: Add DMA ACK signal routing support
  dmaengine: dw-edma: Remove dw_edma_add_irq_mask()
  ...
2026-06-23 15:51:14 -07:00
Linus Torvalds
62cf248de3 phy-for-7.2
Bunch of new driver, device support in existing drivers/binding and few
 updates to existing drivers
 
  - New Support
   - Qualcomm Eliza QMP PHY, Eliza Synopsys eUSB2 support, Eliza PCIe phy
     support, Nord QMP UFS PHY, IPQ5210 USB3 PHY support
   - Econet EN751221 and EN7528 PCIe phy support
   - NXPs TJA1145 CAN transceiver phy support
   - TI DS125DF111 retimer phy support
   - Rockchip RK3528 usb phy support
   - TI J722S phy support
   - Axiado eMMC PHY driver
   - EyeQ5 Ethernet PHY driver
   - Generic PHY driver for Lynx 10G SerDes
   - Spacemit K3 USB2 PHY support
 
 - Updates
   - Tomi helping maintian zynqmp phys
   - lynx phy updates to support 25GBASER
   - Rockchip GRF for RK3568/RV1108 support
   - Qualcomm QSERDES COM v2 support
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+vs47OPLdNbVcHzyfBQHDyUjg0cFAmo6sKsACgkQfBQHDyUj
 g0c8sg//c+sgoW7jH8FVtUH5gVOM9nEMV7ZhyowMZ02ebkYGp+i6Ks74iqld1WRp
 4QzHVHYWRnVjF7UpJBo+bEFnLgO8kdsI5J1hn2TpAQiMziDV5jrfezY06s5N4pQ6
 X2v1QPWhR1kgF0w3s2fjVVV+I9TQveTQHHEDGr7qhPr5lFRGc64UnJ21UHyCoAtm
 BY9c20dCLAiFhEhdtkBqs4j0JD5Y9DxeeoBSVn347gzBG8lqPAstXgJOgUtGw92n
 gPP0AkDfis0g/ezkrEZ2oMdxa75RxGEtIpFsz3vsG9+k1zZNwtOer83SOrny3UwS
 9xnsovKT6D8lXJc+CkFi4od07607ywb7+I5c7zwogjrp3+72Sa2teh8V5zkJA+od
 XUAP2FlWUxjb44M0sHo4m5yviaRAE5FyDFA/yA+DFauIheGqAEaerGAGp3GSRSGy
 abiXJ1MraAF26yUY8Dm4Rgde3L1C+0PMgrDb+MIPD6teIRkYR4kMEpBg4BcuJmv3
 fmoVtn9NUBI3z2BJSLxxOIm0CkYH9JJ7JZZIfIsJFo92MP83QFyf3C/rRfqCLqIa
 IHagKJAQZuSTNOsM3TGO1c+9yJHGna0JlNUVL/bv2w/u20R1dnVESwc0QyThS3xp
 5bVD7NZBLT43emq5dJqpSFHYW89wYyCTJVAQ4qKOSQMpw4A3hQM=
 =b6+n
 -----END PGP SIGNATURE-----

Merge tag 'phy-for-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy

Pull phy updates from Vinod Koul:
 "Bunch of new driver, device support in existing drivers/binding and
  few updates to existing drivers

  New Support:
   - Qualcomm Eliza QMP PHY, Eliza Synopsys eUSB2 support, Eliza PCIe
     phy support, Nord QMP UFS PHY, IPQ5210 USB3 PHY support
   - Econet EN751221 and EN7528 PCIe phy support
   - NXPs TJA1145 CAN transceiver phy support
   - TI DS125DF111 retimer phy support
   - Rockchip RK3528 usb phy support
   - TI J722S phy support
   - Axiado eMMC PHY driver
   - EyeQ5 Ethernet PHY driver
   - Generic PHY driver for Lynx 10G SerDes
   - Spacemit K3 USB2 PHY support

  Updates:
   - Tomi helping maintian zynqmp phys
   - lynx phy updates to support 25GBASER
   - Rockchip GRF for RK3568/RV1108 support
   - Qualcomm QSERDES COM v2 support"

* tag 'phy-for-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy: (87 commits)
  phy: rockchip: inno-usb2: Add missing clkout_ctl_phy kerneldoc
  phy: Move MODULE_DEVICE_TABLE next to the table itself
  phy: add basic support for NXPs TJA1145 CAN transceiver
  dt-bindings: phy: add support for NXPs TJA1145 CAN transceiver
  phy: freescale: phy-fsl-imx8qm-lvds-phy: Fix missing pm_runtime_disable() on probe error path
  dt-bindings: phy: qcom,qmp-usb: Add ipq5210 USB3 PHY
  dt-bindings: phy: qcom,qusb2: Document IPQ5210 compatible
  phy: freescale: phy-fsl-imx8qm-lvds-phy: Use synchronous PM runtime put in reset
  MAINTAINERS: expand Lynx 28G entry to cover Lynx 10G SerDes
  phy: lynx-10g: new driver
  dt-bindings: phy: lynx-10g: initial document
  phy: lynx-28g: improve phy_validate() procedure
  phy: lynx-28g: optimize read-modify-write operation
  phy: lynx-28g: add support for big endian register maps
  phy: lynx-28g: common probe() and remove()
  phy: lynx-28g: make lynx_28g_pll_read_configuration() callable per PLL
  phy: lynx-28g: move struct lynx_info definitions downwards
  phy: lynx-28g: provide default lynx_lane_supports_mode() implementation
  phy: lynx-28g: generalize protocol converter accessors
  phy: lynx-28g: common lynx_pll_get()
  ...
2026-06-23 15:41:48 -07:00
Bjorn Helgaas
2c2fb7a8aa Merge branch 'pci/misc'
- Fix typos in documentation (josh ziegler)

- Use FIELD_MODIFY() instead of open-coding it (Hans Zhang)

* pci/misc:
  PCI: Use FIELD_MODIFY() instead of open-coding it
  Documentation: PCI: Fix typos
2026-06-23 17:32:24 -05:00
Bjorn Helgaas
e5eb7036ac Merge branch 'pci/controller/misc'
- Remove unused gpio.h include from amd-mdb, designware-plat, fu740,
  visconti drivers (Andy Shevchenko)

* pci/controller/misc:
  PCI: visconti: Drop unused include
  PCI: fu740: Drop unused include
  PCI: designware-plat: Drop unused include
  PCI: amd-mdb: Use the right GPIO header
2026-06-23 17:32:23 -05:00
Bjorn Helgaas
78e531d3e5 Merge branch 'pci/controller/tlp_macros'
- Add common TLP Type macros (MRd/Wr, IORd/Wr, CfgRd/Wr 0, CfgRd/Wr 1, Msg)
  and use them in aspeed, cadence, dwc, mediatek, tegra drivers (Hans
  Zhang)

* pci/controller/tlp_macros:
  PCI: cadence: Use common TLP type macros
  PCI: dwc: Replace ATU type macros with common TLP type macros
  PCI: Add common TLP type macros and convert aspeed/mediatek
2026-06-23 17:32:23 -05:00
Bjorn Helgaas
7c97ee7c49 Merge branch 'pci/controller/rescan_lock'
- Protect root bus removal with rescan lock in altera, brcmstb, cadence,
  dwc, iproc, mediatek, plda, rockchip to prevent use-after-free or crashes
  when racing with sysfs rescan or hotplug (Hans Zhang)

* pci/controller/rescan_lock:
  PCI: rockchip: Protect root bus removal with rescan lock
  PCI: plda: Protect root bus removal with rescan lock
  PCI: mediatek: Protect root bus removal with rescan lock
  PCI: iproc: Protect root bus removal with rescan lock
  PCI: dwc: Protect root bus removal with rescan lock
  PCI: cadence: Protect root bus removal with rescan lock
  PCI: brcmstb: Protect root bus removal with rescan lock
  PCI: altera: Protect root bus removal with rescan lock
2026-06-23 17:32:23 -05:00
Bjorn Helgaas
dd81c6524b Merge branch 'pci/controller/link_train_delay'
- Add pci_host_common_link_train_delay() for the mandatory delay after
  > 5GT/s Link training completes and use it for cadence HPA, j721e, LGA;
  dwc; aardvark, mediatek-gen3, rzg3s (Hans Zhang)

* pci/controller/link_train_delay:
  PCI: rzg3s-host: Use common pci_host_common_link_train_delay() helper
  PCI: mediatek-gen3: Add 100 ms delay after link up
  PCI: aardvark: Add 100 ms delay after link training
  PCI: dwc: Use common pci_host_common_link_train_delay() helper
  PCI: cadence-hpa: Add post-link delay
  PCI: cadence: Add post-link delay for LGA and j721e glue driver
  PCI: Add pci_host_common_link_train_delay() helper

# Conflicts:
#	drivers/pci/controller/pci-host-common.h
2026-06-23 17:32:22 -05:00
Bjorn Helgaas
01b5f1d052 Merge branch 'pci/controller/rcar-host'
- Remove unused LIST_HEAD(res) (Lad Prabhakar)

* pci/controller/rcar-host:
  PCI: rcar-host: Remove unused LIST_HEAD(res)
2026-06-23 17:32:17 -05:00
Bjorn Helgaas
878ec18099 Merge branch 'pci/controller/mvebu'
- Use fixed-width interrupt masks to avoid truncation in 64-bit builds
  (Rosen Penev)

* pci/controller/mvebu:
  PCI: mvebu: Use fixed-width interrupt masks to avoid truncation in 64-bit builds
2026-06-23 17:32:17 -05:00
Bjorn Helgaas
4e38ddba80 Merge branch 'pci/controller/mediatek-gen3'
- Deassert PCIE_PHY_RSTB so REFCLK is stable for at least 100ms
  (PCIE_T_PVPERL_MS) before deasserting PERST# (Jian Yang)

- Add .shutdown() to assert PERST# before powering down device (Jian Yang)

- Do full device power down on removal, including asserting PERST#, when
  removing driver (Chen-Yu Tsai)

- Fix a 'failed to create pwrctrl devices' error message that was
  inadvertently skipped (Chen-Yu Tsai)

* pci/controller/mediatek-gen3:
  PCI: mediatek-gen3: Fix incorrectly skipped pwrctrl error message
  PCI: mediatek-gen3: Do full device power down on removal
  PCI: mediatek-gen3: Add a .shutdown() callback to control PERST# signal
  PCI: mediatek-gen3: Fix PERST# control timing during system startup
2026-06-23 17:32:16 -05:00
Bjorn Helgaas
7b90019012 Merge branch 'pci/controller/mediatek'
- Use FIELD_PREP() to fix incorrect operator precedence in PCIE_FTS_NUM_L0
  (Li RongQing)

- Fix IRQ domain leak when port fails to enable (Manivannan Sadhasivam)

- Use actual physical address for MSI message address instead of
  virt_to_phys() (Manivannan Sadhasivam)

- Add EcoNet EN7528 to DT binding (Caleb James DeLisle)

* pci/controller/mediatek:
  dt-bindings: PCI: mediatek: Add support for EcoNet EN7528
  PCI: mediatek: Use actual physical address instead of virt_to_phys()
  PCI: mediatek: Fix IRQ domain leak when port fails to enable
  PCI: mediatek: Fix operator precedence in PCIE_FTS_NUM_L0 macro
2026-06-23 17:32:16 -05:00
Bjorn Helgaas
a5c8e1ffe9 Merge branch 'pci/controller/loongson'
- Ignore downstream devices only on internal bridges to avoid Loongson
  hardware issue (Rong Zhang)

- Quirk old Loongson-3C6000 bridges that advertise incorrect supported link
  speeds (Ziyao Li)

* pci/controller/loongson:
  PCI: loongson: Override PCIe bridge supported speeds for Loongson-3C6000 series
  PCI: loongson: Do not ignore downstream devices on external bridges
2026-06-23 17:32:16 -05:00
Bjorn Helgaas
d04ef0d3b4 Merge branch 'pci/controller/iproc-bcma'
- Restore .map_irq() assignment that broke INTx on the iproc platform bus
  driver (Mark Tomlinson)

* pci/controller/iproc-bcma:
  PCI: iproc: Restore .map_irq() for the platform bus driver
2026-06-23 17:32:15 -05:00
Bjorn Helgaas
97eee6d776 Merge branch 'pci/controller/dwc-ultrarisc'
- Add UltraRISC DP1000 PCIe controller DT binding and driver (Jia Wang)

* pci/controller/dwc-ultrarisc:
  PCI: ultrarisc: Add UltraRISC DP1000 PCIe Root Complex driver
  dt-bindings: PCI: Add UltraRISC DP1000 PCIe controller
2026-06-23 17:32:15 -05:00
Bjorn Helgaas
81c4ead83e Merge branch 'pci/controller/dwc-tegra194'
- Program the DesignWare PORT_AFR L1 entrance latency based on the
  'aspm-l1-entry-delay-ns' DT property (Manikanta Maddireddy)

* pci/controller/dwc-tegra194:
  PCI: tegra194: Use aspm-l1-entry-delay-ns DT property for L1 entrance latency
2026-06-23 17:32:15 -05:00
Bjorn Helgaas
9cd6b3cae0 Merge branch 'pci/controller/dwc-qcom'
- Set max OPP during resume so DBI register accesses don't fail with NoC
  errors (Qiang Yu)

- Add pci_host_common_d3cold_possible() to determine whether downstream
  devices are already in D3hot and wakeup-enabled devices are capable of
  generating PME from D3cold (Krishna Chaitanya Chundru)

- Add a .get_ltssm() callback to get the LTSSM status without DBI, since
  DBI may be inaccessible after PME_Turn_Off (Krishna Chaitanya Chundru)

- Power down PHY via PARF_PHY_CTRL before disabling rails/clocks to avoid
  power leakage (Krishna Chaitanya Chundru)

- Decide whether suspend should put the link in L2 and power down using
  pci_host_common_d3cold_possible() instead of checking whether ASPM L1 is
  enabled (Krishna Chaitanya Chundru)

- Add qcom D3cold support to tear down interconnect bandwidth and OPP votes
  (Krishna Chaitanya Chundru)

- Handle unsupported mixed PERST#/PHY DT configurations, e.g., PHY in RP
  node while PERST# is in the RC node, but warn about the DT issue (Qiang
  Yu)

- Add pcie_encode_t_power_on() to encode L1SS T_POWER_ON fields (Krishna
  Chaitanya Chundru)

- Add dw_pcie_program_t_power_on() to program T_POWER_ON (Krishna Chaitanya
  Chundru)

- Program qcom T_POWER_ON based on DT 't-power-on-us' property in case
  hardware advertises incorrect values (Krishna Chaitanya Chundru)

- Disable ASPM L0s for SA8775P (Shawn Guo)

- Initialize DWC MSI lock for firmware-managed ECAM hosts, which don't use
  the dw_pcie_host_init() path that initializes the lock (Yadu M G)

* pci/controller/dwc-qcom:
  PCI: qcom: Initialize DWC MSI lock for firmware-managed ECAM hosts
  PCI: qcom: Disable ASPM L0s for SA8775P
  PCI: qcom: Program T_POWER_ON
  PCI: dwc: Add dw_pcie_program_t_power_on() to program T_POWER_ON
  PCI/ASPM: Add pcie_encode_t_power_on() helper to encode L1SS T_POWER_ON fields
  PCI: qcom: Handle mixed PERST#/PHY DT configuration
  PCI: qcom: Add D3cold support
  PCI: dwc: Use common D3cold eligibility helper in suspend path
  PCI: qcom: Power down PHY via PARF_PHY_CTRL before disabling rails/clocks
  PCI: qcom: Add .get_ltssm() callback to query LTSSM status
  PCI: host-common: Add pci_host_common_d3cold_possible() helper
  PCI: qcom: Set max OPP before DBI access during resume

# Conflicts:
#	drivers/pci/controller/pci-host-common.c
2026-06-23 17:32:14 -05:00
Bjorn Helgaas
c08c02e749 Merge branch 'pci/controller/dwc-meson'
- Propagate devm_add_action_or_reset() failure to fix probe error path
  (Shuvam Pandey)

- Add a .remove() callback to deinitialize the host bridge and power off
  the PHY (Shuvam Pandey)

* pci/controller/dwc-meson:
  PCI: meson: Add missing remove callback
  PCI: meson: Propagate devm_add_action_or_reset() failure
2026-06-23 17:32:07 -05:00
Bjorn Helgaas
87edaec536 Merge branch 'pci/controller/dwc-intel-gw'
- Enable clock before PHY init for correct ordering (Florian Eckert)

- Add .start_link() callback so the driver works again (Florian Eckert)

- Stop overwriting the ATU base address discovered by
  dw_pcie_get_resources() (Florian Eckert)

- Add DT 'atu' region since this is hardware-specific, and fall back to
  driver default if lacking (Florian Eckert)

* pci/controller/dwc-intel-gw:
  dt-bindings: PCI: intel,lgm-pcie: Add 'atu' resource
  PCI: intel-gw: Fix ATU base address setup and add optional DT 'atu' region
  PCI: intel-gw: Add .start_link() callback
  PCI: intel-gw: Enable clock before PHY init
  PCI: intel-gw: Move interrupt enable to own function
  PCI: intel-gw: Remove unused PCIE_APP_INTX_OFST definition
2026-06-23 17:32:07 -05:00
Bjorn Helgaas
878f37d6de Merge branch 'pci/controller/dwc-imx6'
- Move IMX6SX_GPR12_PCIE_TEST_POWERDOWN handling into the core reset
  functions (Richard Zhu)

- Add pci_host_common_parse_ports() for use by any native driver to parse
  Root Port properties (currently only reset GPIOs) (Sherry Sun)

- Assert PERST# before enabling regulators to ensure that even if power is
  enabled, endpoint stays inactive until REFCLK is stable (Sherry Sun)

- Parse reset properties in Root Port nodes (falling back to host bridge)
  to help support Key E connectors and the pwrctrl framework (Sherry Sun)

- Configure i.MX95 REF_USE_PAD before PHY reset (Richard Zhu)

- Assert i.MX95 ref_clk_en after reference clock stabilizes (Richard Zhu)

- Integrate new pwrctrl API for DTs with Root Port-level power supplies
  (Sherry Sun)

* pci/controller/dwc-imx6:
  PCI: imx6: Integrate new pwrctrl API
  PCI: imx6: Assert ref_clk_en after reference clock stabilizes on i.MX95
  PCI: imx6: Configure REF_USE_PAD before PHY reset for i.MX95
  PCI: imx6: Parse 'reset-gpios' in Root Port nodes
  PCI: imx6: Assert PERST# before enabling regulators
  PCI: host-generic: Add common helpers for parsing Root Port properties
  dt-bindings: PCI: fsl,imx6q-pcie: Add reset GPIO in Root Port node
  PCI: imx6: Fix IMX6SX_GPR12_PCIE_TEST_POWERDOWN handling
2026-06-23 17:32:06 -05:00
Bjorn Helgaas
1d0f97d5f8 Merge branch 'pci/controller/dwc-amd-mdb'
- Assert PERST# on shutdown so any connected Endpoints are held in reset
  during shutdown (Sai Krishna Musham)

* pci/controller/dwc-amd-mdb:
  PCI: amd-mdb: Assert PERST# on shutdown
2026-06-23 17:32:06 -05:00
Bjorn Helgaas
bcb446d61d Merge branch 'pci/controller/dwc'
- Apply ECRC TLP Digest workaround for all DesignWare cores prior to 5.10a,
  not just 4.90a and 5.00a (Manikanta Maddireddy)

- Use common struct dw_pcie 'mode' rather than duplicating it in artpec6,
  dra7xx, dwc-pcie, and keembay driver structs (Hans Zhang)

- Use DEFINE_SHOW_ATTRIBUTE for ltssm_status debugfs to reduce boilerplate
  and fix a seq_file memory leak by including a .release() callback (Hans
  Zhang)

- Fix a signedness bug in fault injection test code (Dan Carpenter)

- Avoid NULL pointer dereference when tearing down debugfs for controller
  that lacks RAS DES capability (Shuvam Pandey)

* pci/controller/dwc:
  PCI: dwc: Avoid dwc_pcie_rasdes_debugfs_deinit() NULL dereference when no RAS DES capability
  PCI: dwc: Fix signedness bug in fault injection test code
  PCI: dwc: Use DEFINE_SHOW_ATTRIBUTE for ltssm_status debugfs
  PCI: keembay: Use common mode field in struct dw_pcie
  PCI: dwc: Use common mode field in struct dw_pcie
  PCI: artpec6: Use common mode field in struct dw_pcie
  PCI: dra7xx: Use common mode field in struct dw_pcie
  PCI: dwc: Apply ECRC workaround for DesignWare cores prior to 5.10a
2026-06-23 17:32:05 -05:00