public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org, netfilter-devel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Stefano Brivio <sbrivio@redhat.com>,
	Pablo Neira Ayuso <pablo@netfilter.org>
Subject: [PATCH 5.4 137/159] netfilter: nft_set_rbtree: Switch to node list walk for overlap detection
Date: Fri, 24 Nov 2023 17:55:54 +0000	[thread overview]
Message-ID: <20231124171947.512876319@linuxfoundation.org> (raw)
In-Reply-To: <20231124171941.909624388@linuxfoundation.org>

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

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

From: Pablo Neira Ayuso <pablo@netfilter.org>

commit c9e6978e2725a7d4b6cd23b2facd3f11422c0643 upstream.

...instead of a tree descent, which became overly complicated in an
attempt to cover cases where expired or inactive elements would affect
comparisons with the new element being inserted.

Further, it turned out that it's probably impossible to cover all those
cases, as inactive nodes might entirely hide subtrees consisting of a
complete interval plus a node that makes the current insertion not
overlap.

To speed up the overlap check, descent the tree to find a greater
element that is closer to the key value to insert. Then walk down the
node list for overlap detection. Starting the overlap check from
rb_first() unconditionally is slow, it takes 10 times longer due to the
full linear traversal of the list.

Moreover, perform garbage collection of expired elements when walking
down the node list to avoid bogus overlap reports.

For the insertion operation itself, this essentially reverts back to the
implementation before commit 7c84d41416d8 ("netfilter: nft_set_rbtree:
Detect partial overlaps on insertion"), except that cases of complete
overlap are already handled in the overlap detection phase itself, which
slightly simplifies the loop to find the insertion point.

Based on initial patch from Stefano Brivio, including text from the
original patch description too.

Fixes: 7c84d41416d8 ("netfilter: nft_set_rbtree: Detect partial overlaps on insertion")
Reviewed-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/netfilter/nft_set_rbtree.c |  223 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 198 insertions(+), 25 deletions(-)

--- a/net/netfilter/nft_set_rbtree.c
+++ b/net/netfilter/nft_set_rbtree.c
@@ -38,10 +38,12 @@ static bool nft_rbtree_interval_start(co
 	return !nft_rbtree_interval_end(rbe);
 }
 
-static bool nft_rbtree_equal(const struct nft_set *set, const void *this,
-			     const struct nft_rbtree_elem *interval)
+static int nft_rbtree_cmp(const struct nft_set *set,
+			  const struct nft_rbtree_elem *e1,
+			  const struct nft_rbtree_elem *e2)
 {
-	return memcmp(this, nft_set_ext_key(&interval->ext), set->klen) == 0;
+	return memcmp(nft_set_ext_key(&e1->ext), nft_set_ext_key(&e2->ext),
+		      set->klen);
 }
 
 static bool __nft_rbtree_lookup(const struct net *net, const struct nft_set *set,
@@ -52,7 +54,6 @@ static bool __nft_rbtree_lookup(const st
 	const struct nft_rbtree_elem *rbe, *interval = NULL;
 	u8 genmask = nft_genmask_cur(net);
 	const struct rb_node *parent;
-	const void *this;
 	int d;
 
 	parent = rcu_dereference_raw(priv->root.rb_node);
@@ -62,12 +63,11 @@ static bool __nft_rbtree_lookup(const st
 
 		rbe = rb_entry(parent, struct nft_rbtree_elem, node);
 
-		this = nft_set_ext_key(&rbe->ext);
-		d = memcmp(this, key, set->klen);
+		d = memcmp(nft_set_ext_key(&rbe->ext), key, set->klen);
 		if (d < 0) {
 			parent = rcu_dereference_raw(parent->rb_left);
 			if (interval &&
-			    nft_rbtree_equal(set, this, interval) &&
+			    !nft_rbtree_cmp(set, rbe, interval) &&
 			    nft_rbtree_interval_end(rbe) &&
 			    nft_rbtree_interval_start(interval))
 				continue;
@@ -214,43 +214,216 @@ static void *nft_rbtree_get(const struct
 	return rbe;
 }
 
+static int nft_rbtree_gc_elem(const struct nft_set *__set,
+			      struct nft_rbtree *priv,
+			      struct nft_rbtree_elem *rbe)
+{
+	struct nft_set *set = (struct nft_set *)__set;
+	struct rb_node *prev = rb_prev(&rbe->node);
+	struct nft_rbtree_elem *rbe_prev;
+	struct nft_set_gc_batch *gcb;
+
+	gcb = nft_set_gc_batch_check(set, NULL, GFP_ATOMIC);
+	if (!gcb)
+		return -ENOMEM;
+
+	/* search for expired end interval coming before this element. */
+	do {
+		rbe_prev = rb_entry(prev, struct nft_rbtree_elem, node);
+		if (nft_rbtree_interval_end(rbe_prev))
+			break;
+
+		prev = rb_prev(prev);
+	} while (prev != NULL);
+
+	rb_erase(&rbe_prev->node, &priv->root);
+	rb_erase(&rbe->node, &priv->root);
+	atomic_sub(2, &set->nelems);
+
+	nft_set_gc_batch_add(gcb, rbe);
+	nft_set_gc_batch_complete(gcb);
+
+	return 0;
+}
+
+static bool nft_rbtree_update_first(const struct nft_set *set,
+				    struct nft_rbtree_elem *rbe,
+				    struct rb_node *first)
+{
+	struct nft_rbtree_elem *first_elem;
+
+	first_elem = rb_entry(first, struct nft_rbtree_elem, node);
+	/* this element is closest to where the new element is to be inserted:
+	 * update the first element for the node list path.
+	 */
+	if (nft_rbtree_cmp(set, rbe, first_elem) < 0)
+		return true;
+
+	return false;
+}
+
 static int __nft_rbtree_insert(const struct net *net, const struct nft_set *set,
 			       struct nft_rbtree_elem *new,
 			       struct nft_set_ext **ext)
 {
+	struct nft_rbtree_elem *rbe, *rbe_le = NULL, *rbe_ge = NULL;
+	struct rb_node *node, *parent, **p, *first = NULL;
 	struct nft_rbtree *priv = nft_set_priv(set);
 	u8 genmask = nft_genmask_next(net);
-	struct nft_rbtree_elem *rbe;
-	struct rb_node *parent, **p;
-	int d;
+	int d, err;
 
+	/* Descend the tree to search for an existing element greater than the
+	 * key value to insert that is greater than the new element. This is the
+	 * first element to walk the ordered elements to find possible overlap.
+	 */
 	parent = NULL;
 	p = &priv->root.rb_node;
 	while (*p != NULL) {
 		parent = *p;
 		rbe = rb_entry(parent, struct nft_rbtree_elem, node);
-		d = memcmp(nft_set_ext_key(&rbe->ext),
-			   nft_set_ext_key(&new->ext),
-			   set->klen);
-		if (d < 0)
+		d = nft_rbtree_cmp(set, rbe, new);
+
+		if (d < 0) {
 			p = &parent->rb_left;
-		else if (d > 0)
+		} else if (d > 0) {
+			if (!first ||
+			    nft_rbtree_update_first(set, rbe, first))
+				first = &rbe->node;
+
 			p = &parent->rb_right;
-		else {
-			if (nft_rbtree_interval_end(rbe) &&
-			    nft_rbtree_interval_start(new)) {
+		} else {
+			if (nft_rbtree_interval_end(rbe))
 				p = &parent->rb_left;
-			} else if (nft_rbtree_interval_start(rbe) &&
-				   nft_rbtree_interval_end(new)) {
+			else
 				p = &parent->rb_right;
-			} else if (nft_set_elem_active(&rbe->ext, genmask)) {
-				*ext = &rbe->ext;
-				return -EEXIST;
-			} else {
-				p = &parent->rb_left;
+		}
+	}
+
+	if (!first)
+		first = rb_first(&priv->root);
+
+	/* Detect overlap by going through the list of valid tree nodes.
+	 * Values stored in the tree are in reversed order, starting from
+	 * highest to lowest value.
+	 */
+	for (node = first; node != NULL; node = rb_next(node)) {
+		rbe = rb_entry(node, struct nft_rbtree_elem, node);
+
+		if (!nft_set_elem_active(&rbe->ext, genmask))
+			continue;
+
+		/* perform garbage collection to avoid bogus overlap reports. */
+		if (nft_set_elem_expired(&rbe->ext)) {
+			err = nft_rbtree_gc_elem(set, priv, rbe);
+			if (err < 0)
+				return err;
+
+			continue;
+		}
+
+		d = nft_rbtree_cmp(set, rbe, new);
+		if (d == 0) {
+			/* Matching end element: no need to look for an
+			 * overlapping greater or equal element.
+			 */
+			if (nft_rbtree_interval_end(rbe)) {
+				rbe_le = rbe;
+				break;
+			}
+
+			/* first element that is greater or equal to key value. */
+			if (!rbe_ge) {
+				rbe_ge = rbe;
+				continue;
+			}
+
+			/* this is a closer more or equal element, update it. */
+			if (nft_rbtree_cmp(set, rbe_ge, new) != 0) {
+				rbe_ge = rbe;
+				continue;
 			}
+
+			/* element is equal to key value, make sure flags are
+			 * the same, an existing more or equal start element
+			 * must not be replaced by more or equal end element.
+			 */
+			if ((nft_rbtree_interval_start(new) &&
+			     nft_rbtree_interval_start(rbe_ge)) ||
+			    (nft_rbtree_interval_end(new) &&
+			     nft_rbtree_interval_end(rbe_ge))) {
+				rbe_ge = rbe;
+				continue;
+			}
+		} else if (d > 0) {
+			/* annotate element greater than the new element. */
+			rbe_ge = rbe;
+			continue;
+		} else if (d < 0) {
+			/* annotate element less than the new element. */
+			rbe_le = rbe;
+			break;
 		}
 	}
+
+	/* - new start element matching existing start element: full overlap
+	 *   reported as -EEXIST, cleared by caller if NLM_F_EXCL is not given.
+	 */
+	if (rbe_ge && !nft_rbtree_cmp(set, new, rbe_ge) &&
+	    nft_rbtree_interval_start(rbe_ge) == nft_rbtree_interval_start(new)) {
+		*ext = &rbe_ge->ext;
+		return -EEXIST;
+	}
+
+	/* - new end element matching existing end element: full overlap
+	 *   reported as -EEXIST, cleared by caller if NLM_F_EXCL is not given.
+	 */
+	if (rbe_le && !nft_rbtree_cmp(set, new, rbe_le) &&
+	    nft_rbtree_interval_end(rbe_le) == nft_rbtree_interval_end(new)) {
+		*ext = &rbe_le->ext;
+		return -EEXIST;
+	}
+
+	/* - new start element with existing closest, less or equal key value
+	 *   being a start element: partial overlap, reported as -ENOTEMPTY.
+	 *   Anonymous sets allow for two consecutive start element since they
+	 *   are constant, skip them to avoid bogus overlap reports.
+	 */
+	if (!nft_set_is_anonymous(set) && rbe_le &&
+	    nft_rbtree_interval_start(rbe_le) && nft_rbtree_interval_start(new))
+		return -ENOTEMPTY;
+
+	/* - new end element with existing closest, less or equal key value
+	 *   being a end element: partial overlap, reported as -ENOTEMPTY.
+	 */
+	if (rbe_le &&
+	    nft_rbtree_interval_end(rbe_le) && nft_rbtree_interval_end(new))
+		return -ENOTEMPTY;
+
+	/* - new end element with existing closest, greater or equal key value
+	 *   being an end element: partial overlap, reported as -ENOTEMPTY
+	 */
+	if (rbe_ge &&
+	    nft_rbtree_interval_end(rbe_ge) && nft_rbtree_interval_end(new))
+		return -ENOTEMPTY;
+
+	/* Accepted element: pick insertion point depending on key value */
+	parent = NULL;
+	p = &priv->root.rb_node;
+	while (*p != NULL) {
+		parent = *p;
+		rbe = rb_entry(parent, struct nft_rbtree_elem, node);
+		d = nft_rbtree_cmp(set, rbe, new);
+
+		if (d < 0)
+			p = &parent->rb_left;
+		else if (d > 0)
+			p = &parent->rb_right;
+		else if (nft_rbtree_interval_end(rbe))
+			p = &parent->rb_left;
+		else
+			p = &parent->rb_right;
+	}
+
 	rb_link_node_rcu(&new->node, parent, p);
 	rb_insert_color(&new->node, &priv->root);
 	return 0;



  parent reply	other threads:[~2023-11-24 19:27 UTC|newest]

Thread overview: 166+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-24 17:53 [PATCH 5.4 000/159] 5.4.262-rc1 review Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 001/159] locking/ww_mutex/test: Fix potential workqueue corruption Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 002/159] perf/core: Bail out early if the request AUX area is out of bound Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 003/159] clocksource/drivers/timer-imx-gpt: Fix potential memory leak Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 004/159] clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 005/159] x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 006/159] wifi: mac80211_hwsim: fix clang-specific fortify warning Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 007/159] wifi: mac80211: dont return unset power in ieee80211_get_tx_power() Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 008/159] wifi: ath9k: fix clang-specific fortify warnings Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 009/159] wifi: ath10k: fix clang-specific fortify warning Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 010/159] net: annotate data-races around sk->sk_tx_queue_mapping Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 011/159] net: annotate data-races around sk->sk_dst_pending_confirm Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 012/159] wifi: ath10k: Dont touch the CE interrupt registers after power up Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 013/159] Bluetooth: Fix double free in hci_conn_cleanup Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 014/159] platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 015/159] drm/komeda: drop all currently held locks if deadlock happens Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 016/159] drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7 Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 017/159] drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 018/159] drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 019/159] selftests/efivarfs: create-read: fix a resource leak Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 020/159] crypto: pcrypt - Fix hungtask for PADATA_RESET Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 021/159] RDMA/hfi1: Use FIELD_GET() to extract Link Width Greg Kroah-Hartman
2023-11-24 17:53 ` [PATCH 5.4 022/159] fs/jfs: Add check for negative db_l2nbperpage Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 023/159] fs/jfs: Add validity check for db_maxag and db_agpref Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 024/159] jfs: fix array-index-out-of-bounds in dbFindLeaf Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 025/159] jfs: fix array-index-out-of-bounds in diAlloc Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 026/159] ARM: 9320/1: fix stack depot IRQ stack filter Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 027/159] ALSA: hda: Fix possible null-ptr-deref when assigning a stream Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 028/159] PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 029/159] atm: iphase: Do PCI error checks on own line Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 030/159] scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup() Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 031/159] HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 032/159] tty: vcc: Add check for kstrdup() in vcc_probe() Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 033/159] usb: gadget: f_ncm: Always set current gadget in ncm_bind() Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 034/159] i2c: sun6i-p2wi: Prevent potential division by zero Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 035/159] media: gspca: cpia1: shift-out-of-bounds in set_flicker Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 036/159] media: vivid: avoid integer overflow Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 037/159] gfs2: ignore negated quota changes Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 038/159] media: cobalt: Use FIELD_GET() to extract Link Width Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 039/159] drm/amd/display: Avoid NULL dereference of timing generator Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 040/159] kgdb: Flush console before entering kgdb on panic Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 041/159] ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 042/159] pwm: Fix double shift bug Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 043/159] wifi: iwlwifi: Use FW rate for non-data frames Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 044/159] perf tools: Add hw_idx in struct branch_stack Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 045/159] perf hist: Add missing puts to hist__account_cycles Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 046/159] NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 047/159] ipvlan: add ipvlan_route_v6_outbound() helper Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 048/159] tty: Fix uninit-value access in ppp_sync_receive() Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 049/159] net: hns3: fix variable may not initialized problem in hns3_init_mac_addr() Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 050/159] tipc: Fix kernel-infoleak due to uninitialized TLV value Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 051/159] ppp: limit MRU to 64K Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 052/159] xen/events: fix delayed eoi list handling Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 053/159] ptp: annotate data-race around q->head and q->tail Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 054/159] bonding: stop the device in bond_setup_by_slave() Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 055/159] net: ethernet: cortina: Fix max RX frame define Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 056/159] net: ethernet: cortina: Handle large frames Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 057/159] net: ethernet: cortina: Fix MTU max setting Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 058/159] netfilter: nf_conntrack_bridge: initialize err to 0 Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 059/159] net: stmmac: Rework stmmac_rx() Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 060/159] net: stmmac: fix rx budget limit check Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 061/159] net/mlx5e: fix double free of encap_header Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 062/159] net/mlx5_core: Clean driver version and name Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 063/159] net/mlx5e: Check return value of snprintf writing to fw_version buffer for representors Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 064/159] macvlan: Dont propagate promisc change to lower dev in passthru Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 065/159] tools/power/turbostat: Fix a knl bug Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 066/159] cifs: spnego: add ; in HOST_KEY_LEN Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 067/159] media: venus: hfi: add checks to perform sanity on queue pointers Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 068/159] randstruct: Fix gcc-plugin performance mode to stay in group Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 069/159] bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 070/159] scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 071/159] x86/cpu/hygon: Fix the CPU topology evaluation for real Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 072/159] KVM: x86: hyper-v: Dont auto-enable stimer on write from user-space Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 073/159] KVM: x86: Ignore MSR_AMD64_TW_CFG access Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 074/159] audit: dont take task_lock() in audit_exe_compare() code path Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 075/159] audit: dont WARN_ON_ONCE(!current->mm) in audit_exe_compare() Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 076/159] hvc/xen: fix error path in xen_hvc_init() to always register frontend driver Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 077/159] PCI/sysfs: Protect drivers D3cold preference from user space Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 078/159] ACPI: resource: Do IRQ override on TongFang GMxXGxx Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 079/159] mmc: meson-gx: Remove setting of CMD_CFG_ERROR Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 080/159] genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 081/159] PCI: keystone: Dont discard .remove() callback Greg Kroah-Hartman
2023-11-24 17:54 ` [PATCH 5.4 082/159] PCI: keystone: Dont discard .probe() callback Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 083/159] parisc/pdc: Add width field to struct pdc_model Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 084/159] parisc/power: Add power soft-off when running on qemu Greg Kroah-Hartman
2023-11-24 19:47   ` Helge Deller
2023-11-25 15:47     ` Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 085/159] clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 086/159] mmc: vub300: fix an error code Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 087/159] PM: hibernate: Use __get_safe_page() rather than touching the list Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 088/159] PM: hibernate: Clean up sync_read handling in snapshot_write_next() Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 089/159] btrfs: dont arbitrarily slow down delalloc if were committing Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 090/159] jbd2: fix potential data lost in recovering journal raced with synchronizing fs bdev Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 091/159] quota: explicitly forbid quota files from being encrypted Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 092/159] kernel/reboot: emergency_restart: Set correct system_state Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 093/159] i2c: core: Run atomic i2c xfer when !preemptible Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 094/159] mcb: fix error handling for different scenarios when parsing Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 095/159] dmaengine: stm32-mdma: correct desc prep when channel running Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 096/159] s390/cmma: fix initial kernel address space page table walk Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 097/159] s390/cmma: fix handling of swapper_pg_dir and invalid_pg_dir Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 098/159] mm/cma: use nth_page() in place of direct struct page manipulation Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 099/159] i3c: master: cdns: Fix reading status register Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 100/159] parisc: Prevent booting 64-bit kernels on PA1.x machines Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 101/159] parisc/pgtable: Do not drop upper 5 address bits of physical address Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 102/159] parisc/power: Fix power soft-off when running on qemu Greg Kroah-Hartman
2023-11-24 19:48   ` Helge Deller
2023-11-25 15:46     ` Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 103/159] ALSA: info: Fix potential deadlock at disconnection Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 104/159] ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 105/159] tty/serial: Migrate meson_uart to use has_sysrq Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 106/159] serial: meson: remove redundant initialization of variable id Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 107/159] tty: serial: meson: retrieve port FIFO size from DT Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 108/159] serial: meson: Use platform_get_irq() to get the interrupt Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 109/159] tty: serial: meson: fix hard LOCKUP on crtscts mode Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 110/159] Bluetooth: btusb: Add flag to define wideband speech capability Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 111/159] Bluetooth: btusb: add Realtek 8822CE to usb_device_id table Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 112/159] Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0cb8:0xc559 Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 113/159] bluetooth: Add device 0bda:887b to device tables Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 114/159] bluetooth: Add device 13d3:3571 " Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 115/159] Bluetooth: btusb: Add RTW8852BE device 13d3:3570 " Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 116/159] Bluetooth: btusb: Add 0bda:b85b for Fn-Link RTL8852BE Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 117/159] Revert ncsi: Propagate carrier gain/loss events to the NCSI controller Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 118/159] net: dsa: lan9303: consequently nested-lock physical MDIO Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 119/159] i2c: i801: fix potential race in i801_block_transaction_byte_by_byte Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 120/159] media: lirc: drop trailing space from scancode transmit Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 121/159] media: sharp: fix sharp encoding Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 122/159] media: venus: hfi_parser: Add check to keep the number of codecs within range Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 123/159] media: venus: hfi: fix the check to handle session buffer requirement Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 124/159] media: venus: hfi: add checks to handle capabilities from firmware Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 125/159] nfsd: fix file memleak on client_opens_release Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 126/159] Revert "net: r8169: Disable multicast filter for RTL8168H and RTL8107E" Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 127/159] ext4: apply umask if ACL support is disabled Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 128/159] ext4: correct offset of gdb backup in non meta_bg group to update_backups Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 129/159] ext4: correct return value of ext4_convert_meta_bg Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 130/159] ext4: correct the start block of counting reserved clusters Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 131/159] ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 132/159] drm/amdgpu: fix error handling in amdgpu_bo_list_get() Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 133/159] tracing: Have trace_event_file have ref counters Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 134/159] netfilter: nf_tables: pass context to nft_set_destroy() Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 135/159] netfilter: nftables: rename set element data activation/deactivation functions Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 136/159] netfilter: nf_tables: drop map element references from preparation phase Greg Kroah-Hartman
2023-11-24 17:55 ` Greg Kroah-Hartman [this message]
2023-11-24 17:55 ` [PATCH 5.4 138/159] netfilter: nft_set_rbtree: fix null deref on element insertion Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 139/159] netfilter: nft_set_rbtree: fix overlap expiration walk Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 140/159] netfilter: nf_tables: dont skip expired elements during walk Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 141/159] netfilter: nf_tables: GC transaction API to avoid race with control plane Greg Kroah-Hartman
2023-11-24 17:55 ` [PATCH 5.4 142/159] netfilter: nf_tables: adapt set backend to use GC transaction API Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 143/159] netfilter: nft_set_hash: mark set element as dead when deleting from packet path Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 144/159] netfilter: nf_tables: remove busy mark and gc batch API Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 145/159] netfilter: nf_tables: fix GC transaction races with netns and netlink event exit path Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 146/159] netfilter: nf_tables: GC transaction race with netns dismantle Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 147/159] netfilter: nf_tables: GC transaction race with abort path Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 148/159] netfilter: nf_tables: use correct lock to protect gc_list Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 149/159] netfilter: nf_tables: defer gc run if previous batch is still pending Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 150/159] netfilter: nft_set_rbtree: skip sync GC for new elements in this transaction Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 151/159] netfilter: nft_set_rbtree: use read spinlock to avoid datapath contention Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 152/159] netfilter: nft_set_hash: try later when GC hits EAGAIN on iteration Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 153/159] netfilter: nf_tables: fix memleak when more than 255 elements expired Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 154/159] netfilter: nf_tables: unregister flowtable hooks on netns exit Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 155/159] netfilter: nf_tables: double hook unregistration in netns path Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 156/159] netfilter: nftables: update table flags from the commit phase Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 157/159] netfilter: nf_tables: fix table flag updates Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 158/159] netfilter: nf_tables: disable toggling dormant table state more than once Greg Kroah-Hartman
2023-11-24 17:56 ` [PATCH 5.4 159/159] netfilter: nf_tables: bogus EBUSY when deleting flowtable after flush (for 5.4) Greg Kroah-Hartman
2023-11-24 19:39 ` [PATCH 5.4 000/159] 5.4.262-rc1 review Naresh Kamboju
2023-11-25 15:45   ` Greg Kroah-Hartman

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=20231124171947.512876319@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pablo@netfilter.org \
    --cc=patches@lists.linux.dev \
    --cc=sbrivio@redhat.com \
    --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