public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Hamza Mahfooz <hamzamahfooz@linux.microsoft.com>,
	Florian Westphal <fw@strlen.de>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 105/119] netfilter: nf_tables: avoid chain re-validation if possible
Date: Thu, 15 Jan 2026 17:48:40 +0100	[thread overview]
Message-ID: <20260115164155.742574624@linuxfoundation.org> (raw)
In-Reply-To: <20260115164151.948839306@linuxfoundation.org>

6.12-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Florian Westphal <fw@strlen.de>

[ Upstream commit 8e1a1bc4f5a42747c08130b8242ebebd1210b32f ]

Hamza Mahfooz reports cpu soft lock-ups in
nft_chain_validate():

 watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [iptables-nft-re:37547]
[..]
 RIP: 0010:nft_chain_validate+0xcb/0x110 [nf_tables]
[..]
  nft_immediate_validate+0x36/0x50 [nf_tables]
  nft_chain_validate+0xc9/0x110 [nf_tables]
  nft_immediate_validate+0x36/0x50 [nf_tables]
  nft_chain_validate+0xc9/0x110 [nf_tables]
  nft_immediate_validate+0x36/0x50 [nf_tables]
  nft_chain_validate+0xc9/0x110 [nf_tables]
  nft_immediate_validate+0x36/0x50 [nf_tables]
  nft_chain_validate+0xc9/0x110 [nf_tables]
  nft_immediate_validate+0x36/0x50 [nf_tables]
  nft_chain_validate+0xc9/0x110 [nf_tables]
  nft_immediate_validate+0x36/0x50 [nf_tables]
  nft_chain_validate+0xc9/0x110 [nf_tables]
  nft_table_validate+0x6b/0xb0 [nf_tables]
  nf_tables_validate+0x8b/0xa0 [nf_tables]
  nf_tables_commit+0x1df/0x1eb0 [nf_tables]
[..]

Currently nf_tables will traverse the entire table (chain graph), starting
from the entry points (base chains), exploring all possible paths
(chain jumps).  But there are cases where we could avoid revalidation.

Consider:
1  input -> j2 -> j3
2  input -> j2 -> j3
3  input -> j1 -> j2 -> j3

Then the second rule does not need to revalidate j2, and, by extension j3,
because this was already checked during validation of the first rule.
We need to validate it only for rule 3.

This is needed because chain loop detection also ensures we do not exceed
the jump stack: Just because we know that j2 is cycle free, its last jump
might now exceed the allowed stack size.  We also need to update all
reachable chains with the new largest observed call depth.

Care has to be taken to revalidate even if the chain depth won't be an
issue: chain validation also ensures that expressions are not called from
invalid base chains.  For example, the masquerade expression can only be
called from NAT postrouting base chains.

Therefore we also need to keep record of the base chain context (type,
hooknum) and revalidate if the chain becomes reachable from a different
hook location.

Reported-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com>
Closes: https://lore.kernel.org/netfilter-devel/20251118221735.GA5477@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net/
Tested-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/net/netfilter/nf_tables.h | 34 +++++++++++----
 net/netfilter/nf_tables_api.c     | 69 +++++++++++++++++++++++++++++--
 2 files changed, 91 insertions(+), 12 deletions(-)

diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
index ee550229d4ffa..d440583aa4b24 100644
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -1093,6 +1093,29 @@ struct nft_rule_blob {
 		__attribute__((aligned(__alignof__(struct nft_rule_dp))));
 };
 
+enum nft_chain_types {
+	NFT_CHAIN_T_DEFAULT = 0,
+	NFT_CHAIN_T_ROUTE,
+	NFT_CHAIN_T_NAT,
+	NFT_CHAIN_T_MAX
+};
+
+/**
+ *	struct nft_chain_validate_state - validation state
+ *
+ *	If a chain is encountered again during table validation it is
+ *	possible to avoid revalidation provided the calling context is
+ *	compatible.  This structure stores relevant calling context of
+ *	previous validations.
+ *
+ *	@hook_mask: the hook numbers and locations the chain is linked to
+ *	@depth: the deepest call chain level the chain is linked to
+ */
+struct nft_chain_validate_state {
+	u8			hook_mask[NFT_CHAIN_T_MAX];
+	u8			depth;
+};
+
 /**
  *	struct nft_chain - nf_tables chain
  *
@@ -1111,6 +1134,7 @@ struct nft_rule_blob {
  *	@udlen: user data length
  *	@udata: user data in the chain
  *	@blob_next: rule blob pointer to the next in the chain
+ *	@vstate: validation state
  */
 struct nft_chain {
 	struct nft_rule_blob		__rcu *blob_gen_0;
@@ -1130,9 +1154,10 @@ struct nft_chain {
 
 	/* Only used during control plane commit phase: */
 	struct nft_rule_blob		*blob_next;
+	struct nft_chain_validate_state vstate;
 };
 
-int nft_chain_validate(const struct nft_ctx *ctx, const struct nft_chain *chain);
+int nft_chain_validate(const struct nft_ctx *ctx, struct nft_chain *chain);
 int nft_setelem_validate(const struct nft_ctx *ctx, struct nft_set *set,
 			 const struct nft_set_iter *iter,
 			 struct nft_elem_priv *elem_priv);
@@ -1140,13 +1165,6 @@ int nft_set_catchall_validate(const struct nft_ctx *ctx, struct nft_set *set);
 int nf_tables_bind_chain(const struct nft_ctx *ctx, struct nft_chain *chain);
 void nf_tables_unbind_chain(const struct nft_ctx *ctx, struct nft_chain *chain);
 
-enum nft_chain_types {
-	NFT_CHAIN_T_DEFAULT = 0,
-	NFT_CHAIN_T_ROUTE,
-	NFT_CHAIN_T_NAT,
-	NFT_CHAIN_T_MAX
-};
-
 /**
  * 	struct nft_chain_type - nf_tables chain type info
  *
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 6a2b7ce67e7f3..c3613d8e7d725 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -120,6 +120,29 @@ static void nft_validate_state_update(struct nft_table *table, u8 new_validate_s
 
 	table->validate_state = new_validate_state;
 }
+
+static bool nft_chain_vstate_valid(const struct nft_ctx *ctx,
+				   const struct nft_chain *chain)
+{
+	const struct nft_base_chain *base_chain;
+	enum nft_chain_types type;
+	u8 hooknum;
+
+	if (WARN_ON_ONCE(!nft_is_base_chain(ctx->chain)))
+		return false;
+
+	base_chain = nft_base_chain(ctx->chain);
+	hooknum = base_chain->ops.hooknum;
+	type = base_chain->type->type;
+
+	/* chain is already validated for this call depth */
+	if (chain->vstate.depth >= ctx->level &&
+	    chain->vstate.hook_mask[type] & BIT(hooknum))
+		return true;
+
+	return false;
+}
+
 static void nf_tables_trans_destroy_work(struct work_struct *w);
 
 static void nft_trans_gc_work(struct work_struct *work);
@@ -3898,6 +3921,29 @@ static void nf_tables_rule_release(const struct nft_ctx *ctx, struct nft_rule *r
 	nf_tables_rule_destroy(ctx, rule);
 }
 
+static void nft_chain_vstate_update(const struct nft_ctx *ctx, struct nft_chain *chain)
+{
+	const struct nft_base_chain *base_chain;
+	enum nft_chain_types type;
+	u8 hooknum;
+
+	/* ctx->chain must hold the calling base chain. */
+	if (WARN_ON_ONCE(!nft_is_base_chain(ctx->chain))) {
+		memset(&chain->vstate, 0, sizeof(chain->vstate));
+		return;
+	}
+
+	base_chain = nft_base_chain(ctx->chain);
+	hooknum = base_chain->ops.hooknum;
+	type = base_chain->type->type;
+
+	BUILD_BUG_ON(BIT(NF_INET_NUMHOOKS) > U8_MAX);
+
+	chain->vstate.hook_mask[type] |= BIT(hooknum);
+	if (chain->vstate.depth < ctx->level)
+		chain->vstate.depth = ctx->level;
+}
+
 /** nft_chain_validate - loop detection and hook validation
  *
  * @ctx: context containing call depth and base chain
@@ -3907,15 +3953,25 @@ static void nf_tables_rule_release(const struct nft_ctx *ctx, struct nft_rule *r
  * and set lookups until either the jump limit is hit or all reachable
  * chains have been validated.
  */
-int nft_chain_validate(const struct nft_ctx *ctx, const struct nft_chain *chain)
+int nft_chain_validate(const struct nft_ctx *ctx, struct nft_chain *chain)
 {
 	struct nft_expr *expr, *last;
 	struct nft_rule *rule;
 	int err;
 
+	BUILD_BUG_ON(NFT_JUMP_STACK_SIZE > 255);
 	if (ctx->level == NFT_JUMP_STACK_SIZE)
 		return -EMLINK;
 
+	if (ctx->level > 0) {
+		/* jumps to base chains are not allowed. */
+		if (nft_is_base_chain(chain))
+			return -ELOOP;
+
+		if (nft_chain_vstate_valid(ctx, chain))
+			return 0;
+	}
+
 	list_for_each_entry(rule, &chain->rules, list) {
 		if (fatal_signal_pending(current))
 			return -EINTR;
@@ -3936,6 +3992,7 @@ int nft_chain_validate(const struct nft_ctx *ctx, const struct nft_chain *chain)
 		}
 	}
 
+	nft_chain_vstate_update(ctx, chain);
 	return 0;
 }
 EXPORT_SYMBOL_GPL(nft_chain_validate);
@@ -3947,7 +4004,7 @@ static int nft_table_validate(struct net *net, const struct nft_table *table)
 		.net	= net,
 		.family	= table->family,
 	};
-	int err;
+	int err = 0;
 
 	list_for_each_entry(chain, &table->chains, list) {
 		if (!nft_is_base_chain(chain))
@@ -3956,12 +4013,16 @@ static int nft_table_validate(struct net *net, const struct nft_table *table)
 		ctx.chain = chain;
 		err = nft_chain_validate(&ctx, chain);
 		if (err < 0)
-			return err;
+			goto err;
 
 		cond_resched();
 	}
 
-	return 0;
+err:
+	list_for_each_entry(chain, &table->chains, list)
+		memset(&chain->vstate, 0, sizeof(chain->vstate));
+
+	return err;
 }
 
 int nft_setelem_validate(const struct nft_ctx *ctx, struct nft_set *set,
-- 
2.51.0




  parent reply	other threads:[~2026-01-15 17:05 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-15 16:46 [PATCH 6.12 000/119] 6.12.66-rc1 review Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 001/119] NFSD: Fix permission check for read access to executable-only files Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 002/119] nfsd: provide locking for v4_end_grace Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 003/119] nfsd: use correct loop termination in nfsd4_revoke_states() Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 004/119] nfsd: check that server is running in unlock_filesystem Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 005/119] NFSD: net ref data still needs to be freed even if net hasnt startup Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 006/119] NFSD: Remove NFSERR_EAGAIN Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 007/119] atm: Fix dma_free_coherent() size Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 008/119] net: 3com: 3c59x: fix possible null dereference in vortex_probe1() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 009/119] arm64: Fix cleared E0POE bit after cpu_suspend()/resume() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 010/119] btrfs: always detect conflicting inodes when logging inode refs Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 011/119] mei: me: add nova lake point S DID Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 012/119] lib/crypto: aes: Fix missing MMU protection for AES S-box Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 013/119] counter: 104-quad-8: Fix incorrect return value in IRQ handler Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 014/119] counter: interrupt-cnt: Drop IRQF_NO_THREAD flag Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 015/119] drm/amdgpu: Fix query for VPE block_type and ip_count Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 016/119] drm/pl111: Fix error handling in pl111_amba_probe Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 017/119] drm/radeon: Remove __counted_by from ClockInfoArray.clockInfo[] Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 018/119] gpio: rockchip: mark the GPIO controller as sleeping Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 019/119] pinctrl: qcom: lpass-lpi: " Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 020/119] wifi: avoid kernel-infoleak from struct iw_point Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 021/119] wifi: mac80211: restore non-chanctx injection behaviour Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 022/119] libceph: prevent potential out-of-bounds reads in handle_auth_done() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 023/119] libceph: replace overzealous BUG_ON in osdmap_apply_incremental() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 024/119] libceph: make free_choose_arg_map() resilient to partial allocation Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 025/119] libceph: return the handler error from mon_handle_auth_done() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 026/119] libceph: reset sparse-read state in osd_fault() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 027/119] libceph: make calc_target() set t->paused, not just clear it Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 028/119] tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 029/119] drm/xe: make xe_gt_idle_disable_c6() handle the forcewake internally Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 030/119] drm/xe: Ensure GT is in C0 during resumes Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 031/119] csky: fix csky_cmpxchg_fixup not working Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 032/119] ARM: 9461/1: Disable HIGHPTE on PREEMPT_RT kernels Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 033/119] alpha: dont reference obsolete termio struct for TC* constants Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 034/119] dm-snapshot: fix scheduling while atomic on real-time kernels Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 035/119] NFSv4: ensure the open stateid seqid doesnt go backwards Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 036/119] ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warning (again) Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 037/119] NFS: Fix up the automount fs_context to use the correct cred Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 038/119] drm/amd/display: shrink struct members Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 039/119] smb/client: fix NT_STATUS_UNABLE_TO_FREE_VM value Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 040/119] smb/client: fix NT_STATUS_DEVICE_DOOR_OPEN value Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 041/119] smb/client: fix NT_STATUS_NO_DATA_DETECTED value Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 042/119] scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 043/119] scsi: ufs: core: Fix EH failure after W-LUN resume error Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 044/119] scsi: Revert "scsi: libsas: Fix exp-attached device scan after probe failure scanned in again after probe failed" Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 045/119] btrfs: fix qgroup_snapshot_quick_inherit() squota bug Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 046/119] btrfs: qgroup: update all parent qgroups when doing quick inherit Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 047/119] btrfs: tracepoints: use btrfs_root_id() to get the id of a root Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 048/119] btrfs: fix NULL dereference on root when tracing inode eviction Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 049/119] drm/amd/display: Respect users CONFIG_FRAME_WARN more for dml files Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 050/119] drm/amd/display: Apply e4479aecf658 to dml Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 051/119] arm64: dts: ti: k3-am62-lp-sk-nand: Rename pinctrls to fix schema warnings Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 052/119] crypto: qat - fix duplicate restarting msg during AER error Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 053/119] arm64: dts: add off-on-delay-us for usdhc2 regulator Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 054/119] ARM: dts: imx6q-ba16: fix RTC interrupt level Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 055/119] arm64: dts: imx8mp: Fix LAN8740Ai PHY reference clock on DH electronics i.MX8M Plus DHCOM Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 056/119] arm64: dts: imx8qm-ss-dma: correct the dma channels of lpuart Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 057/119] arm64: dts: mba8mx: Fix Ethernet PHY IRQ support Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 058/119] netfilter: nft_set_pipapo: fix range overlap detection Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 059/119] netfilter: nft_synproxy: avoid possible data-race on update operation Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 060/119] gpio: pca953x: Add support for level-triggered interrupts Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 061/119] gpio: pca953x: handle short interrupt pulses on PCAL devices Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 062/119] netfilter: nf_tables: fix memory leak in nf_tables_newrule() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 063/119] netfilter: nf_conncount: update last_gc only when GC has been performed Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 064/119] net: marvell: prestera: fix NULL dereference on devlink_alloc() failure Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 065/119] bridge: fix C-VLAN preservation in 802.1ad vlan_tunnel egress Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 066/119] net: mscc: ocelot: Fix crash when adding interface under a lag Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 067/119] inet: ping: Fix icmp out counting Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 068/119] net: sock: fix hardened usercopy panic in sock_recv_errqueue Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 069/119] netdev: preserve NETIF_F_ALL_FOR_ALL across TSO updates Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 070/119] net/mlx5e: Dont print error message due to invalid module Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 071/119] net: wwan: iosm: Fix memory leak in ipc_mux_deinit() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 072/119] bnxt_en: Fix potential data corruption with HW GRO/LRO Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 073/119] vsock: Make accept()ed sockets use custom setsockopt() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 074/119] btrfs: only enforce free space tree if v1 cache is required for bs < ps cases Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 075/119] riscv: pgtable: Cleanup useless VA_USER_XXX definitions Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 076/119] net: fix memory leak in skb_segment_list for GRO packets Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 077/119] idpf: keep the netdev when a reset fails Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 078/119] idpf: fix memory leak in idpf_vport_rel() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 079/119] idpf: cap maximum Rx buffer size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 080/119] net: netdevsim: fix inconsistent carrier state after link/unlink Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 081/119] HID: quirks: work around VID/PID conflict for appledisplay Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 082/119] net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 083/119] net: usb: pegasus: fix memory leak in update_eth_regs_async() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 084/119] net: enetc: fix build warning when PAGE_SIZE is greater than 128K Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 085/119] arp: do not assume dev_hard_header() does not change skb->head Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 086/119] erofs: dont bother with s_stack_depth increasing for now Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 087/119] erofs: fix file-backed mounts no longer working on EROFS partitions Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 088/119] ALSA: ac97bus: Use guard() for mutex locks Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 089/119] ALSA: ac97: fix a double free in snd_ac97_controller_register() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 090/119] btrfs: fix error handling of submit_uncompressed_range() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 091/119] btrfs: subpage: dump the involved bitmap when ASSERT() failed Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 092/119] btrfs: add extra error messages for delalloc range related errors Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 093/119] btrfs: remove btrfs_fs_info::sectors_per_page Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 094/119] btrfs: truncate ordered extent when skipping writeback past i_size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 095/119] btrfs: use variable for end offset in extent_writepage_io() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 096/119] btrfs: fix beyond-EOF write handling Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 097/119] bpf: Fix an issue in bpf_prog_test_run_xdp when page size greater than 4K Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 098/119] bpf: Make variables in bpf_prog_test_run_xdp less confusing Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 099/119] bpf: Support specifying linear xdp packet data size for BPF_PROG_TEST_RUN Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 100/119] bpf, test_run: Subtract size of xdp_frame from allowed metadata size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 101/119] bpf: Fix reference count leak in bpf_prog_test_run_xdp() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 102/119] net: sfp: extend Potron XGSPON quirk to cover additional EEPROM variant Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 103/119] powercap: fix race condition in register_control_type() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 104/119] powercap: fix sscanf() error return value handling Greg Kroah-Hartman
2026-01-15 16:48 ` Greg Kroah-Hartman [this message]
2026-01-15 16:48 ` [PATCH 6.12 106/119] ata: libata-core: Disable LPM on ST2000DM008-2FR102 Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 107/119] drm/amd/display: Fix DP no audio issue Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 108/119] spi: mt65xx: Use IRQF_ONESHOT with threaded IRQ Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 109/119] drm/amdkfd: Fix improper NULL termination of queue restore SMI event string Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 110/119] can: j1939: make j1939_session_activate() fail if device is no longer registered Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 111/119] ALSA: usb-audio: Update for native DSD support quirks Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 112/119] ASoC: amd: yc: Add quirk for Honor MagicBook X16 2025 Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 113/119] ALSA: hda/realtek: enable woofer speakers on Medion NM14LNL Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 114/119] ASoC: fsl_sai: Add missing registers to cache default Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 115/119] scsi: sg: Fix occasional bogus elapsed time that exceeds timeout Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 116/119] spi: cadence-quadspi: Prevent lost complete() call during indirect read Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 117/119] tpm2-sessions: Fix out of range indexing in name_size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 118/119] ALSA: hda: intel-dsp-config: Prefer legacy driver as fallback Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 119/119] bpf: test_run: Fix ctx leak in bpf_prog_test_run_xdp error path Greg Kroah-Hartman
2026-01-15 19:15 ` [PATCH 6.12 000/119] 6.12.66-rc1 review Brett A C Sheffield
2026-01-15 19:58 ` Slade Watkins
2026-01-15 21:34 ` Francesco Dolcini
2026-01-15 22:42 ` Shuah Khan
2026-01-15 23:18 ` Florian Fainelli
2026-01-16 10:03 ` Ron Economos
2026-01-16 10:33 ` Jon Hunter
2026-01-16 11:23 ` Peter Schneider
2026-01-16 15:37 ` Harshit Mogalapalli
2026-01-16 17:48 ` Hardik Garg
2026-01-16 19:18 ` Mark Brown
2026-01-16 21:58 ` Brett Mastbergen
2026-01-17 14:42 ` Miguel Ojeda
2026-01-19 11:23 ` Jeffrin Thalakkottoor

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=20260115164155.742574624@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=fw@strlen.de \
    --cc=hamzamahfooz@linux.microsoft.com \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox