From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
Christoph Petrausch <christoph.petrausch@deepl.com>,
Jesper Dangaard Brouer <hawk@kernel.org>,
Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>,
Michal Kubiak <michal.kubiak@intel.com>,
Jacob Keller <jacob.e.keller@intel.com>,
Priya Singh <priyax.singh@intel.com>,
Tony Nguyen <anthony.l.nguyen@intel.com>,
Sasha Levin <sashal@kernel.org>, Rinitha S <sx.rinitha@intel.com>
Subject: [PATCH 6.16 030/149] ice: fix Rx page leak on multi-buffer frames
Date: Mon, 22 Sep 2025 21:28:50 +0200 [thread overview]
Message-ID: <20250922192413.625052669@linuxfoundation.org> (raw)
In-Reply-To: <20250922192412.885919229@linuxfoundation.org>
6.16-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jacob Keller <jacob.e.keller@intel.com>
[ Upstream commit 84bf1ac85af84d354c7a2fdbdc0d4efc8aaec34b ]
The ice_put_rx_mbuf() function handles calling ice_put_rx_buf() for each
buffer in the current frame. This function was introduced as part of
handling multi-buffer XDP support in the ice driver.
It works by iterating over the buffers from first_desc up to 1 plus the
total number of fragments in the frame, cached from before the XDP program
was executed.
If the hardware posts a descriptor with a size of 0, the logic used in
ice_put_rx_mbuf() breaks. Such descriptors get skipped and don't get added
as fragments in ice_add_xdp_frag. Since the buffer isn't counted as a
fragment, we do not iterate over it in ice_put_rx_mbuf(), and thus we don't
call ice_put_rx_buf().
Because we don't call ice_put_rx_buf(), we don't attempt to re-use the
page or free it. This leaves a stale page in the ring, as we don't
increment next_to_alloc.
The ice_reuse_rx_page() assumes that the next_to_alloc has been incremented
properly, and that it always points to a buffer with a NULL page. Since
this function doesn't check, it will happily recycle a page over the top
of the next_to_alloc buffer, losing track of the old page.
Note that this leak only occurs for multi-buffer frames. The
ice_put_rx_mbuf() function always handles at least one buffer, so a
single-buffer frame will always get handled correctly. It is not clear
precisely why the hardware hands us descriptors with a size of 0 sometimes,
but it happens somewhat regularly with "jumbo frames" used by 9K MTU.
To fix ice_put_rx_mbuf(), we need to make sure to call ice_put_rx_buf() on
all buffers between first_desc and next_to_clean. Borrow the logic of a
similar function in i40e used for this same purpose. Use the same logic
also in ice_get_pgcnts().
Instead of iterating over just the number of fragments, use a loop which
iterates until the current index reaches to the next_to_clean element just
past the current frame. Unlike i40e, the ice_put_rx_mbuf() function does
call ice_put_rx_buf() on the last buffer of the frame indicating the end of
packet.
For non-linear (multi-buffer) frames, we need to take care when adjusting
the pagecnt_bias. An XDP program might release fragments from the tail of
the frame, in which case that fragment page is already released. Only
update the pagecnt_bias for the first descriptor and fragments still
remaining post-XDP program. Take care to only access the shared info for
fragmented buffers, as this avoids a significant cache miss.
The xdp_xmit value only needs to be updated if an XDP program is run, and
only once per packet. Drop the xdp_xmit pointer argument from
ice_put_rx_mbuf(). Instead, set xdp_xmit in the ice_clean_rx_irq() function
directly. This avoids needing to pass the argument and avoids an extra
bit-wise OR for each buffer in the frame.
Move the increment of the ntc local variable to ensure its updated *before*
all calls to ice_get_pgcnts() or ice_put_rx_mbuf(), as the loop logic
requires the index of the element just after the current frame.
Now that we use an index pointer in the ring to identify the packet, we no
longer need to track or cache the number of fragments in the rx_ring.
Cc: Christoph Petrausch <christoph.petrausch@deepl.com>
Cc: Jesper Dangaard Brouer <hawk@kernel.org>
Reported-by: Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>
Closes: https://lore.kernel.org/netdev/CAK8fFZ4hY6GUJNENz3wY9jaYLZXGfpr7dnZxzGMYoE44caRbgw@mail.gmail.com/
Fixes: 743bbd93cf29 ("ice: put Rx buffers after being done with current frame")
Tested-by: Michal Kubiak <michal.kubiak@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Acked-by: Jesper Dangaard Brouer <hawk@kernel.org>
Tested-by: Priya Singh <priyax.singh@intel.com>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/intel/ice/ice_txrx.c | 80 ++++++++++-------------
drivers/net/ethernet/intel/ice/ice_txrx.h | 1 -
2 files changed, 34 insertions(+), 47 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c
index c50cf3ad190e9..4766597ac5550 100644
--- a/drivers/net/ethernet/intel/ice/ice_txrx.c
+++ b/drivers/net/ethernet/intel/ice/ice_txrx.c
@@ -865,10 +865,6 @@ ice_add_xdp_frag(struct ice_rx_ring *rx_ring, struct xdp_buff *xdp,
__skb_fill_page_desc_noacc(sinfo, sinfo->nr_frags++, rx_buf->page,
rx_buf->page_offset, size);
sinfo->xdp_frags_size += size;
- /* remember frag count before XDP prog execution; bpf_xdp_adjust_tail()
- * can pop off frags but driver has to handle it on its own
- */
- rx_ring->nr_frags = sinfo->nr_frags;
if (page_is_pfmemalloc(rx_buf->page))
xdp_buff_set_frag_pfmemalloc(xdp);
@@ -939,20 +935,20 @@ ice_get_rx_buf(struct ice_rx_ring *rx_ring, const unsigned int size,
/**
* ice_get_pgcnts - grab page_count() for gathered fragments
* @rx_ring: Rx descriptor ring to store the page counts on
+ * @ntc: the next to clean element (not included in this frame!)
*
* This function is intended to be called right before running XDP
* program so that the page recycling mechanism will be able to take
* a correct decision regarding underlying pages; this is done in such
* way as XDP program can change the refcount of page
*/
-static void ice_get_pgcnts(struct ice_rx_ring *rx_ring)
+static void ice_get_pgcnts(struct ice_rx_ring *rx_ring, unsigned int ntc)
{
- u32 nr_frags = rx_ring->nr_frags + 1;
u32 idx = rx_ring->first_desc;
struct ice_rx_buf *rx_buf;
u32 cnt = rx_ring->count;
- for (int i = 0; i < nr_frags; i++) {
+ while (idx != ntc) {
rx_buf = &rx_ring->rx_buf[idx];
rx_buf->pgcnt = page_count(rx_buf->page);
@@ -1125,62 +1121,51 @@ ice_put_rx_buf(struct ice_rx_ring *rx_ring, struct ice_rx_buf *rx_buf)
}
/**
- * ice_put_rx_mbuf - ice_put_rx_buf() caller, for all frame frags
+ * ice_put_rx_mbuf - ice_put_rx_buf() caller, for all buffers in frame
* @rx_ring: Rx ring with all the auxiliary data
* @xdp: XDP buffer carrying linear + frags part
- * @xdp_xmit: XDP_TX/XDP_REDIRECT verdict storage
- * @ntc: a current next_to_clean value to be stored at rx_ring
+ * @ntc: the next to clean element (not included in this frame!)
* @verdict: return code from XDP program execution
*
- * Walk through gathered fragments and satisfy internal page
- * recycle mechanism; we take here an action related to verdict
- * returned by XDP program;
+ * Called after XDP program is completed, or on error with verdict set to
+ * ICE_XDP_CONSUMED.
+ *
+ * Walk through buffers from first_desc to the end of the frame, releasing
+ * buffers and satisfying internal page recycle mechanism. The action depends
+ * on verdict from XDP program.
*/
static void ice_put_rx_mbuf(struct ice_rx_ring *rx_ring, struct xdp_buff *xdp,
- u32 *xdp_xmit, u32 ntc, u32 verdict)
+ u32 ntc, u32 verdict)
{
- u32 nr_frags = rx_ring->nr_frags + 1;
u32 idx = rx_ring->first_desc;
u32 cnt = rx_ring->count;
- u32 post_xdp_frags = 1;
struct ice_rx_buf *buf;
- int i;
+ u32 xdp_frags = 0;
+ int i = 0;
if (unlikely(xdp_buff_has_frags(xdp)))
- post_xdp_frags += xdp_get_shared_info_from_buff(xdp)->nr_frags;
+ xdp_frags = xdp_get_shared_info_from_buff(xdp)->nr_frags;
- for (i = 0; i < post_xdp_frags; i++) {
+ while (idx != ntc) {
buf = &rx_ring->rx_buf[idx];
+ if (++idx == cnt)
+ idx = 0;
- if (verdict & (ICE_XDP_TX | ICE_XDP_REDIR)) {
+ /* An XDP program could release fragments from the end of the
+ * buffer. For these, we need to keep the pagecnt_bias as-is.
+ * To do this, only adjust pagecnt_bias for fragments up to
+ * the total remaining after the XDP program has run.
+ */
+ if (verdict != ICE_XDP_CONSUMED)
ice_rx_buf_adjust_pg_offset(buf, xdp->frame_sz);
- *xdp_xmit |= verdict;
- } else if (verdict & ICE_XDP_CONSUMED) {
+ else if (i++ <= xdp_frags)
buf->pagecnt_bias++;
- } else if (verdict == ICE_XDP_PASS) {
- ice_rx_buf_adjust_pg_offset(buf, xdp->frame_sz);
- }
ice_put_rx_buf(rx_ring, buf);
-
- if (++idx == cnt)
- idx = 0;
- }
- /* handle buffers that represented frags released by XDP prog;
- * for these we keep pagecnt_bias as-is; refcount from struct page
- * has been decremented within XDP prog and we do not have to increase
- * the biased refcnt
- */
- for (; i < nr_frags; i++) {
- buf = &rx_ring->rx_buf[idx];
- ice_put_rx_buf(rx_ring, buf);
- if (++idx == cnt)
- idx = 0;
}
xdp->data = NULL;
rx_ring->first_desc = ntc;
- rx_ring->nr_frags = 0;
}
/**
@@ -1260,6 +1245,10 @@ int ice_clean_rx_irq(struct ice_rx_ring *rx_ring, int budget)
/* retrieve a buffer from the ring */
rx_buf = ice_get_rx_buf(rx_ring, size, ntc);
+ /* Increment ntc before calls to ice_put_rx_mbuf() */
+ if (++ntc == cnt)
+ ntc = 0;
+
if (!xdp->data) {
void *hard_start;
@@ -1268,24 +1257,23 @@ int ice_clean_rx_irq(struct ice_rx_ring *rx_ring, int budget)
xdp_prepare_buff(xdp, hard_start, offset, size, !!offset);
xdp_buff_clear_frags_flag(xdp);
} else if (ice_add_xdp_frag(rx_ring, xdp, rx_buf, size)) {
- ice_put_rx_mbuf(rx_ring, xdp, NULL, ntc, ICE_XDP_CONSUMED);
+ ice_put_rx_mbuf(rx_ring, xdp, ntc, ICE_XDP_CONSUMED);
break;
}
- if (++ntc == cnt)
- ntc = 0;
/* skip if it is NOP desc */
if (ice_is_non_eop(rx_ring, rx_desc))
continue;
- ice_get_pgcnts(rx_ring);
+ ice_get_pgcnts(rx_ring, ntc);
xdp_verdict = ice_run_xdp(rx_ring, xdp, xdp_prog, xdp_ring, rx_desc);
if (xdp_verdict == ICE_XDP_PASS)
goto construct_skb;
total_rx_bytes += xdp_get_buff_len(xdp);
total_rx_pkts++;
- ice_put_rx_mbuf(rx_ring, xdp, &xdp_xmit, ntc, xdp_verdict);
+ ice_put_rx_mbuf(rx_ring, xdp, ntc, xdp_verdict);
+ xdp_xmit |= xdp_verdict & (ICE_XDP_TX | ICE_XDP_REDIR);
continue;
construct_skb:
@@ -1298,7 +1286,7 @@ int ice_clean_rx_irq(struct ice_rx_ring *rx_ring, int budget)
rx_ring->ring_stats->rx_stats.alloc_buf_failed++;
xdp_verdict = ICE_XDP_CONSUMED;
}
- ice_put_rx_mbuf(rx_ring, xdp, &xdp_xmit, ntc, xdp_verdict);
+ ice_put_rx_mbuf(rx_ring, xdp, ntc, xdp_verdict);
if (!skb)
break;
diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.h b/drivers/net/ethernet/intel/ice/ice_txrx.h
index a4b1e95146327..07155e615f75a 100644
--- a/drivers/net/ethernet/intel/ice/ice_txrx.h
+++ b/drivers/net/ethernet/intel/ice/ice_txrx.h
@@ -358,7 +358,6 @@ struct ice_rx_ring {
struct ice_tx_ring *xdp_ring;
struct ice_rx_ring *next; /* pointer to next ring in q_vector */
struct xsk_buff_pool *xsk_pool;
- u32 nr_frags;
u16 max_frame;
u16 rx_buf_len;
dma_addr_t dma; /* physical address of ring */
--
2.51.0
next prev parent reply other threads:[~2025-09-22 19:42 UTC|newest]
Thread overview: 166+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-22 19:28 [PATCH 6.16 000/149] 6.16.9-rc1 review Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 001/149] cgroup: split cgroup_destroy_wq into 3 workqueues Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 002/149] btrfs: fix invalid extref key setup when replaying dentry Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 003/149] btrfs: zoned: fix incorrect ASSERT in btrfs_zoned_reserve_data_reloc_bg() Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 004/149] perf maps: Ensure kmap is set up for all inserts Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 005/149] wifi: wilc1000: avoid buffer overflow in WID string configuration Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 006/149] nvme: fix PI insert on write Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 007/149] ALSA: firewire-motu: drop EPOLLOUT from poll return values as write is not supported Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 008/149] wifi: mt76: do not add non-sta wcid entries to the poll list Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 009/149] wifi: mac80211: increase scan_ies_len for S1G Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 010/149] wifi: mac80211: fix incorrect type for ret Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 011/149] pcmcia: omap_cf: Mark driver struct with __refdata to prevent section mismatch Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 012/149] smb: server: let smb_direct_writev() respect SMB_DIRECT_MAX_SEND_SGES Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 013/149] um: virtio_uml: Fix use-after-free after put_device in probe Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 014/149] um: Fix FD copy size in os_rcv_fd_msg() Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 015/149] net/mlx5: Not returning mlx5_link_info table when speed is unknown Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 016/149] dpaa2-switch: fix buffer pool seeding for control traffic Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 017/149] net/tcp: Fix a NULL pointer dereference when using TCP-AO with TCP_REPAIR Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 018/149] dpll: fix clock quality level reporting Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 019/149] rxrpc: Fix unhandled errors in rxgk_verify_packet_integrity() Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 020/149] rxrpc: Fix untrusted unsigned subtract Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 021/149] octeon_ep: Validate the VF ID Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 022/149] qed: Dont collect too many protection override GRC elements Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 023/149] net: dst_metadata: fix IP_DF bit not extracted from tunnel headers Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 024/149] bonding: set random address only when slaves already exist Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 025/149] mptcp: set remote_deny_join_id0 on SYN recv Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 026/149] selftests: mptcp: userspace pm: validate deny-join-id0 flag Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 027/149] mptcp: tfo: record deny join id0 info Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 028/149] selftests: mptcp: sockopt: fix error messages Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 029/149] net: natsemi: fix `rx_dropped` double accounting on `netif_rx()` failure Greg Kroah-Hartman
2025-09-22 19:28 ` Greg Kroah-Hartman [this message]
2025-09-22 19:28 ` [PATCH 6.16 031/149] i40e: remove redundant memory barrier when cleaning Tx descs Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 032/149] ixgbe: initialize aci.lock before its used Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 033/149] ixgbe: destroy aci.lock later within ixgbe_remove path Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 034/149] igc: dont fail igc_probe() on LED setup error Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 035/149] doc/netlink: Fix typos in operation attributes Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 036/149] net/mlx5e: Harden uplink netdev access against device unbind Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 037/149] net/mlx5e: Add a miss level for ipsec crypto offload Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 038/149] bonding: dont set oif to bond dev when getting NS target destination Greg Kroah-Hartman
2025-09-22 19:28 ` [PATCH 6.16 039/149] octeon_ep: fix VF MAC address lifecycle handling Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 040/149] tcp: Clear tcp_sk(sk)->fastopen_rsk in tcp_disconnect() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 041/149] tls: make sure to abort the stream if headers are bogus Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 042/149] Revert "net/mlx5e: Update and set Xon/Xoff upon port speed set" Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 043/149] net: clear sk->sk_ino in sk_set_socket(sk, NULL) Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 044/149] net: liquidio: fix overflow in octeon_init_instr_queue() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 045/149] cnic: Fix use-after-free bugs in cnic_delete_task Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 046/149] octeontx2-pf: Fix use-after-free bugs in otx2_sync_tstamp() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 047/149] ksmbd: smbdirect: validate data_offset and data_length field of smb_direct_data_transfer Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 048/149] ksmbd: smbdirect: verify remaining_data_length respects max_fragmented_recv_size Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 049/149] zram: fix slot write race condition Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 050/149] nilfs2: fix CFI failure when accessing /sys/fs/nilfs2/features/* Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 051/149] crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 052/149] power: supply: bq27xxx: fix error return in case of no bq27000 hdq battery Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 053/149] power: supply: bq27xxx: restrict no-battery detection to bq27000 Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 054/149] Revert "sched_ext: Skip per-CPU tasks in scx_bpf_reenqueue_local()" Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 055/149] btrfs: initialize inode::file_extent_tree after i_mode has been set Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 056/149] dm-raid: dont set io_min and io_opt for raid1 Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 057/149] dm-stripe: fix a possible integer overflow Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 058/149] mm/gup: check ref_count instead of lru before migration Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 059/149] mm: revert "mm/gup: clear the LRU flag of a page before adding to LRU batch" Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 060/149] gup: optimize longterm pin_user_pages() for large folio Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 061/149] mm/gup: local lru_add_drain() to avoid lru_add_drain_all() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 062/149] mm: revert "mm: vmscan.c: fix OOM on swap stress test" Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 063/149] mm: folio_may_be_lru_cached() unless folio_test_large() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 064/149] LoongArch: Update help info of ARCH_STRICT_ALIGN Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 065/149] objtool/LoongArch: Mark types based on break immediate code Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 066/149] objtool/LoongArch: Mark special atomic instruction as INSN_BUG type Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 067/149] LoongArch: Fix unreliable stack for live patching Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 068/149] LoongArch: vDSO: Check kcalloc() result in init_vdso() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 069/149] LoongArch: Align ACPI structures if ARCH_STRICT_ALIGN enabled Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 070/149] LoongArch: Check the return value when creating kobj Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 071/149] LoongArch: Make LTO case independent in Makefile Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 072/149] LoongArch: Handle jump tables options for RUST Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 073/149] LoongArch: KVM: Avoid copy_*_user() with lock hold in kvm_eiointc_ctrl_access() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 074/149] LoongArch: KVM: Avoid copy_*_user() with lock hold in kvm_eiointc_regs_access() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 075/149] LoongArch: KVM: Avoid copy_*_user() with lock hold in kvm_eiointc_sw_status_access() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 076/149] LoongArch: KVM: Avoid copy_*_user() with lock hold in kvm_pch_pic_regs_access() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 077/149] LoongArch: KVM: Fix VM migration failure with PTW enabled Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 078/149] iommu/vt-d: Fix __domain_mapping()s usage of switch_to_super_page() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 079/149] iommu/amd: Fix ivrs_base memleak in early_amd_iommu_init() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 080/149] iommu/amd/pgtbl: Fix possible race while increase page table level Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 081/149] iommu/s390: Fix memory corruption when using identity domain Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 082/149] iommu/s390: Make attach succeed when the device was surprise removed Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 083/149] btrfs: tree-checker: fix the incorrect inode ref size check Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 084/149] ASoC: SDCA: Add quirk for incorrect function types for 3 systems Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 085/149] ASoC: qcom: audioreach: Fix lpaif_type configuration for the I2S interface Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 086/149] ASoC: qcom: q6apm-lpass-dais: Fix NULL pointer dereference if source graph failed Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 087/149] ASoC: qcom: q6apm-lpass-dais: Fix missing set_fmt DAI op for I2S Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 088/149] mmc: mvsdio: Fix dma_unmap_sg() nents value Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 089/149] mmc: sdhci: Move the code related to setting the clock from sdhci_set_ios_common() into sdhci_set_ios() Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 090/149] mmc: sdhci-pci-gli: GL9767: Fix initializing the UHS-II interface during a power-on Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 091/149] mmc: sdhci-uhs2: Fix calling incorrect sdhci_set_clock() function Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 092/149] x86/sev: Guard sev_evict_cache() with CONFIG_AMD_MEM_ENCRYPT Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 093/149] KVM: SVM: Sync TPR from LAPIC into VMCB::V_TPR even if AVIC is active Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 094/149] drm/amdkfd: add proper handling for S0ix Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 095/149] drm/amdgpu: suspend KFD and KGD user queues " Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 096/149] drm/amd/display: Allow RX6xxx & RX7700 to invoke amdgpu_irq_get/put Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 097/149] drm/amd: Only restore cached manual clock settings in restore if OD enabled Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 098/149] io_uring/io-wq: fix `max_workers` breakage and `nr_workers` underflow Greg Kroah-Hartman
2025-09-22 19:29 ` [PATCH 6.16 099/149] io_uring: include dying ring in task_work "should cancel" state Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 100/149] net: rfkill: gpio: Fix crash due to dereferencering uninitialized pointer Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 101/149] gpiolib: acpi: initialize acpi_gpio_info struct Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 102/149] crypto: ccp - Always pass in an error pointer to __sev_platform_shutdown_locked() Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 103/149] rds: ib: Increment i_fastreg_wrs before bailing out Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 104/149] mptcp: propagate shutdown to subflows when possible Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 105/149] selftests: mptcp: connect: catch IO errors on listen side Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 106/149] selftests: mptcp: avoid spurious errors on TCP disconnect Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 107/149] ALSA: hda/realtek: Fix mute led for HP Laptop 15-dw4xx Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 108/149] ASoC: wm8940: Correct PLL rate rounding Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 109/149] ASoC: wm8940: Correct typo in control name Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 110/149] ASoC: wm8974: Correct PLL rate rounding Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 111/149] ASoC: codec: sma1307: Fix memory corruption in sma1307_setting_loaded() Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 112/149] ASoC: SOF: Intel: hda-stream: Fix incorrect variable used in error message Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 113/149] ASoC: SDCA: Fix return value in sdca_regmap_mbq_size() Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 114/149] ASoC: Intel: catpt: Expose correct bit depth to userspace Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 115/149] iommu/amd: Fix alias device DTE setting Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 116/149] ASoC: amd: acp: Fix incorrect retrival of acp_chip_info Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 117/149] drm/xe/tile: Release kobject for the failure path Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 118/149] drm/xe/pf: Drop rounddown_pow_of_two fair LMEM limitation Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 119/149] drm: bridge: anx7625: Fix NULL pointer dereference with early IRQ Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 120/149] drm: bridge: cdns-mhdp8546: Fix missing mutex unlock on error path Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 121/149] drm/xe: Fix a NULL vs IS_ERR() in xe_vm_add_compute_exec_queue() Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 122/149] ALSA: usb: qcom: Fix false-positive address space check Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 123/149] drm/xe: Fix error handling if PXP fails to start Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 124/149] drm/xe/guc: Enable extended CAT error reporting Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 125/149] drm/xe/guc: Set RCS/CCS yield policy Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 126/149] smb: smbdirect: introduce smbdirect_socket.recv_io.expected Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 127/149] smb: client: make use of smbdirect_socket->recv_io.expected Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 128/149] smb: smbdirect: introduce struct smbdirect_recv_io Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 129/149] smb: client: make use of " Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 130/149] smb: client: let recv_done verify data_offset, data_length and remaining_data_length Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 131/149] smb: client: fix filename matching of deferred files Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 132/149] smb: client: use disable[_delayed]_work_sync in smbdirect.c Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 133/149] smb: client: let smbd_destroy() call disable_work_sync(&info->post_send_credits_work) Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 134/149] crypto: af_alg - Set merge to zero early in af_alg_sendmsg Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 135/149] io_uring/msg_ring: kill alloc_cache for io_kiocb allocations Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 136/149] smb: client: fix file open check in __cifs_unlink() Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 137/149] smb: client: fix smbdirect_recv_io leak in smbd_negotiate() error path Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 138/149] io_uring: fix incorrect io_kiocb reference in io_link_skb Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 139/149] platform/x86: asus-wmi: Fix ROG button mapping, tablet mode on ASUS ROG Z13 Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 140/149] platform/x86: asus-wmi: Re-add extra keys to ignore_key_wlan quirk Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 141/149] mptcp: pm: nl: announce deny-join-id0 flag Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 142/149] dt-bindings: serial: 8250: allow clock uartclk and reg for nxp,lpc1850-uart Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 143/149] dt-bindings: serial: 8250: spacemit: set clocks property as required Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 144/149] dt-bindings: serial: 8250: move a constraint Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 145/149] samples/damon/prcl: fix boot time enable crash Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 146/149] samples/damon: change enable parameters to enabled Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 147/149] samples/damon/mtier: avoid starting DAMON before initialization Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 148/149] clk: sunxi-ng: mp: Fix dual-divider clock rate readback Greg Kroah-Hartman
2025-09-22 19:30 ` [PATCH 6.16 149/149] samples/damon/prcl: avoid starting DAMON before initialization Greg Kroah-Hartman
2025-09-22 23:01 ` [PATCH 6.16 000/149] 6.16.9-rc1 review Florian Fainelli
2025-09-23 2:39 ` Justin Forbes
2025-09-23 5:14 ` Naresh Kamboju
2025-09-23 7:09 ` Takeshi Ogasawara
2025-09-23 7:26 ` Brett A C Sheffield
2025-09-23 10:28 ` [PATCH 6.16 000/149] " Pascal Ernster
2025-09-23 13:10 ` Jon Hunter
2025-09-23 14:34 ` Mark Brown
2025-09-23 14:39 ` Peter Schneider
2025-09-23 14:57 ` Ron Economos
2025-09-23 17:01 ` Ronald Warsow
2025-09-23 20:46 ` Miguel Ojeda
2025-09-24 0:25 ` Shuah Khan
2025-09-24 7:01 ` Hardik Garg
2025-09-24 13:55 ` Dileep malepu
2025-09-24 14:23 ` Achill Gilgenast
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250922192413.625052669@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=anthony.l.nguyen@intel.com \
--cc=christoph.petrausch@deepl.com \
--cc=hawk@kernel.org \
--cc=jacob.e.keller@intel.com \
--cc=jaroslav.pulchart@gooddata.com \
--cc=michal.kubiak@intel.com \
--cc=patches@lists.linux.dev \
--cc=priyax.singh@intel.com \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=sx.rinitha@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.