From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Florian Westphal <fw@strlen.de>,
Stefano Brivio <sbrivio@redhat.com>,
Pablo Neira Ayuso <pablo@netfilter.org>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.16 154/189] netfilter: nft_set: remove one argument from lookup and update functions
Date: Wed, 17 Sep 2025 14:34:24 +0200 [thread overview]
Message-ID: <20250917123355.633263942@linuxfoundation.org> (raw)
In-Reply-To: <20250917123351.839989757@linuxfoundation.org>
6.16-stable review patch. If anyone has any objections, please let me know.
------------------
From: Florian Westphal <fw@strlen.de>
[ Upstream commit 17a20e09f086f2c574ac87f3cf6e14c4377f65f6 ]
Return the extension pointer instead of passing it as a function
argument to be filled in by the callee.
As-is, whenever false is returned, the extension pointer is not used.
For all set types, when true is returned, the extension pointer was set
to the matching element.
Only exception: nft_set_bitmap doesn't support extensions.
Return a pointer to a static const empty element extension container.
return false -> return NULL
return true -> return the elements' extension pointer.
This saves one function argument.
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Stable-dep-of: c4eaca2e1052 ("netfilter: nft_set_pipapo: don't check genbit from packetpath lookups")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
include/net/netfilter/nf_tables.h | 10 ++---
include/net/netfilter/nf_tables_core.h | 47 ++++++++++++----------
net/netfilter/nft_dynset.c | 5 ++-
net/netfilter/nft_lookup.c | 27 ++++++-------
net/netfilter/nft_objref.c | 5 +--
net/netfilter/nft_set_bitmap.c | 11 ++++--
net/netfilter/nft_set_hash.c | 54 ++++++++++++--------------
net/netfilter/nft_set_pipapo.c | 19 +++++----
net/netfilter/nft_set_pipapo_avx2.c | 25 ++++++------
net/netfilter/nft_set_rbtree.c | 40 +++++++++----------
10 files changed, 126 insertions(+), 117 deletions(-)
diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
index 5e49619ae49c6..cf65703e221fa 100644
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -459,19 +459,17 @@ struct nft_set_ext;
* control plane functions.
*/
struct nft_set_ops {
- bool (*lookup)(const struct net *net,
+ const struct nft_set_ext * (*lookup)(const struct net *net,
const struct nft_set *set,
- const u32 *key,
- const struct nft_set_ext **ext);
- bool (*update)(struct nft_set *set,
+ const u32 *key);
+ const struct nft_set_ext * (*update)(struct nft_set *set,
const u32 *key,
struct nft_elem_priv *
(*new)(struct nft_set *,
const struct nft_expr *,
struct nft_regs *),
const struct nft_expr *expr,
- struct nft_regs *regs,
- const struct nft_set_ext **ext);
+ struct nft_regs *regs);
bool (*delete)(const struct nft_set *set,
const u32 *key);
diff --git a/include/net/netfilter/nf_tables_core.h b/include/net/netfilter/nf_tables_core.h
index 03b6165756fc5..6a52fb97b8443 100644
--- a/include/net/netfilter/nf_tables_core.h
+++ b/include/net/netfilter/nf_tables_core.h
@@ -94,34 +94,41 @@ extern const struct nft_set_type nft_set_pipapo_type;
extern const struct nft_set_type nft_set_pipapo_avx2_type;
#ifdef CONFIG_MITIGATION_RETPOLINE
-bool nft_rhash_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);
-bool nft_rbtree_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);
-bool nft_bitmap_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);
-bool nft_hash_lookup_fast(const struct net *net,
- const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);
-bool nft_hash_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);
-bool nft_set_do_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);
+const struct nft_set_ext *
+nft_rhash_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key);
+const struct nft_set_ext *
+nft_rbtree_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key);
+const struct nft_set_ext *
+nft_bitmap_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key);
+const struct nft_set_ext *
+nft_hash_lookup_fast(const struct net *net, const struct nft_set *set,
+ const u32 *key);
+const struct nft_set_ext *
+nft_hash_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key);
+const struct nft_set_ext *
+nft_set_do_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key);
#else
-static inline bool
+static inline const struct nft_set_ext *
nft_set_do_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext)
+ const u32 *key)
{
- return set->ops->lookup(net, set, key, ext);
+ return set->ops->lookup(net, set, key);
}
#endif
/* called from nft_pipapo_avx2.c */
-bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);
+const struct nft_set_ext *
+nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key);
/* called from nft_set_pipapo.c */
-bool nft_pipapo_avx2_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);
+const struct nft_set_ext *
+nft_pipapo_avx2_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key);
void nft_counter_init_seqcount(void);
diff --git a/net/netfilter/nft_dynset.c b/net/netfilter/nft_dynset.c
index 88922e0e8e837..e24493d9e7761 100644
--- a/net/netfilter/nft_dynset.c
+++ b/net/netfilter/nft_dynset.c
@@ -91,8 +91,9 @@ void nft_dynset_eval(const struct nft_expr *expr,
return;
}
- if (set->ops->update(set, ®s->data[priv->sreg_key], nft_dynset_new,
- expr, regs, &ext)) {
+ ext = set->ops->update(set, ®s->data[priv->sreg_key], nft_dynset_new,
+ expr, regs);
+ if (ext) {
if (priv->op == NFT_DYNSET_OP_UPDATE &&
nft_set_ext_exists(ext, NFT_SET_EXT_TIMEOUT) &&
READ_ONCE(nft_set_ext_timeout(ext)->timeout) != 0) {
diff --git a/net/netfilter/nft_lookup.c b/net/netfilter/nft_lookup.c
index 63ef832b8aa71..40c602ffbcba7 100644
--- a/net/netfilter/nft_lookup.c
+++ b/net/netfilter/nft_lookup.c
@@ -25,32 +25,33 @@ struct nft_lookup {
};
#ifdef CONFIG_MITIGATION_RETPOLINE
-bool nft_set_do_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext)
+const struct nft_set_ext *
+nft_set_do_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key)
{
if (set->ops == &nft_set_hash_fast_type.ops)
- return nft_hash_lookup_fast(net, set, key, ext);
+ return nft_hash_lookup_fast(net, set, key);
if (set->ops == &nft_set_hash_type.ops)
- return nft_hash_lookup(net, set, key, ext);
+ return nft_hash_lookup(net, set, key);
if (set->ops == &nft_set_rhash_type.ops)
- return nft_rhash_lookup(net, set, key, ext);
+ return nft_rhash_lookup(net, set, key);
if (set->ops == &nft_set_bitmap_type.ops)
- return nft_bitmap_lookup(net, set, key, ext);
+ return nft_bitmap_lookup(net, set, key);
if (set->ops == &nft_set_pipapo_type.ops)
- return nft_pipapo_lookup(net, set, key, ext);
+ return nft_pipapo_lookup(net, set, key);
#if defined(CONFIG_X86_64) && !defined(CONFIG_UML)
if (set->ops == &nft_set_pipapo_avx2_type.ops)
- return nft_pipapo_avx2_lookup(net, set, key, ext);
+ return nft_pipapo_avx2_lookup(net, set, key);
#endif
if (set->ops == &nft_set_rbtree_type.ops)
- return nft_rbtree_lookup(net, set, key, ext);
+ return nft_rbtree_lookup(net, set, key);
WARN_ON_ONCE(1);
- return set->ops->lookup(net, set, key, ext);
+ return set->ops->lookup(net, set, key);
}
EXPORT_SYMBOL_GPL(nft_set_do_lookup);
#endif
@@ -61,12 +62,12 @@ void nft_lookup_eval(const struct nft_expr *expr,
{
const struct nft_lookup *priv = nft_expr_priv(expr);
const struct nft_set *set = priv->set;
- const struct nft_set_ext *ext = NULL;
const struct net *net = nft_net(pkt);
+ const struct nft_set_ext *ext;
bool found;
- found = nft_set_do_lookup(net, set, ®s->data[priv->sreg], &ext) ^
- priv->invert;
+ ext = nft_set_do_lookup(net, set, ®s->data[priv->sreg]);
+ found = !!ext ^ priv->invert;
if (!found) {
ext = nft_set_catchall_lookup(net, set);
if (!ext) {
diff --git a/net/netfilter/nft_objref.c b/net/netfilter/nft_objref.c
index 09da7a3f9f967..8ee66a86c3bc7 100644
--- a/net/netfilter/nft_objref.c
+++ b/net/netfilter/nft_objref.c
@@ -111,10 +111,9 @@ void nft_objref_map_eval(const struct nft_expr *expr,
struct net *net = nft_net(pkt);
const struct nft_set_ext *ext;
struct nft_object *obj;
- bool found;
- found = nft_set_do_lookup(net, set, ®s->data[priv->sreg], &ext);
- if (!found) {
+ ext = nft_set_do_lookup(net, set, ®s->data[priv->sreg]);
+ if (!ext) {
ext = nft_set_catchall_lookup(net, set);
if (!ext) {
regs->verdict.code = NFT_BREAK;
diff --git a/net/netfilter/nft_set_bitmap.c b/net/netfilter/nft_set_bitmap.c
index 8a435cc0e98c4..8d3f040a904a2 100644
--- a/net/netfilter/nft_set_bitmap.c
+++ b/net/netfilter/nft_set_bitmap.c
@@ -75,16 +75,21 @@ nft_bitmap_active(const u8 *bitmap, u32 idx, u32 off, u8 genmask)
}
INDIRECT_CALLABLE_SCOPE
-bool nft_bitmap_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext)
+const struct nft_set_ext *
+nft_bitmap_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key)
{
const struct nft_bitmap *priv = nft_set_priv(set);
+ static const struct nft_set_ext found;
u8 genmask = nft_genmask_cur(net);
u32 idx, off;
nft_bitmap_location(set, key, &idx, &off);
- return nft_bitmap_active(priv->bitmap, idx, off, genmask);
+ if (nft_bitmap_active(priv->bitmap, idx, off, genmask))
+ return &found;
+
+ return NULL;
}
static struct nft_bitmap_elem *
diff --git a/net/netfilter/nft_set_hash.c b/net/netfilter/nft_set_hash.c
index abb0c8ec63719..9903c737c9f0a 100644
--- a/net/netfilter/nft_set_hash.c
+++ b/net/netfilter/nft_set_hash.c
@@ -81,8 +81,9 @@ static const struct rhashtable_params nft_rhash_params = {
};
INDIRECT_CALLABLE_SCOPE
-bool nft_rhash_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext)
+const struct nft_set_ext *
+nft_rhash_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key)
{
struct nft_rhash *priv = nft_set_priv(set);
const struct nft_rhash_elem *he;
@@ -95,9 +96,9 @@ bool nft_rhash_lookup(const struct net *net, const struct nft_set *set,
he = rhashtable_lookup(&priv->ht, &arg, nft_rhash_params);
if (he != NULL)
- *ext = &he->ext;
+ return &he->ext;
- return !!he;
+ return NULL;
}
static struct nft_elem_priv *
@@ -120,14 +121,11 @@ nft_rhash_get(const struct net *net, const struct nft_set *set,
return ERR_PTR(-ENOENT);
}
-static bool nft_rhash_update(struct nft_set *set, const u32 *key,
- struct nft_elem_priv *
- (*new)(struct nft_set *,
- const struct nft_expr *,
- struct nft_regs *regs),
- const struct nft_expr *expr,
- struct nft_regs *regs,
- const struct nft_set_ext **ext)
+static const struct nft_set_ext *
+nft_rhash_update(struct nft_set *set, const u32 *key,
+ struct nft_elem_priv *(*new)(struct nft_set *, const struct nft_expr *,
+ struct nft_regs *regs),
+ const struct nft_expr *expr, struct nft_regs *regs)
{
struct nft_rhash *priv = nft_set_priv(set);
struct nft_rhash_elem *he, *prev;
@@ -161,14 +159,13 @@ static bool nft_rhash_update(struct nft_set *set, const u32 *key,
}
out:
- *ext = &he->ext;
- return true;
+ return &he->ext;
err2:
nft_set_elem_destroy(set, &he->priv, true);
atomic_dec(&set->nelems);
err1:
- return false;
+ return NULL;
}
static int nft_rhash_insert(const struct net *net, const struct nft_set *set,
@@ -507,8 +504,9 @@ struct nft_hash_elem {
};
INDIRECT_CALLABLE_SCOPE
-bool nft_hash_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext)
+const struct nft_set_ext *
+nft_hash_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key)
{
struct nft_hash *priv = nft_set_priv(set);
u8 genmask = nft_genmask_cur(net);
@@ -519,12 +517,10 @@ bool nft_hash_lookup(const struct net *net, const struct nft_set *set,
hash = reciprocal_scale(hash, priv->buckets);
hlist_for_each_entry_rcu(he, &priv->table[hash], node) {
if (!memcmp(nft_set_ext_key(&he->ext), key, set->klen) &&
- nft_set_elem_active(&he->ext, genmask)) {
- *ext = &he->ext;
- return true;
- }
+ nft_set_elem_active(&he->ext, genmask))
+ return &he->ext;
}
- return false;
+ return NULL;
}
static struct nft_elem_priv *
@@ -547,9 +543,9 @@ nft_hash_get(const struct net *net, const struct nft_set *set,
}
INDIRECT_CALLABLE_SCOPE
-bool nft_hash_lookup_fast(const struct net *net,
- const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext)
+const struct nft_set_ext *
+nft_hash_lookup_fast(const struct net *net, const struct nft_set *set,
+ const u32 *key)
{
struct nft_hash *priv = nft_set_priv(set);
u8 genmask = nft_genmask_cur(net);
@@ -562,12 +558,10 @@ bool nft_hash_lookup_fast(const struct net *net,
hlist_for_each_entry_rcu(he, &priv->table[hash], node) {
k2 = *(u32 *)nft_set_ext_key(&he->ext)->data;
if (k1 == k2 &&
- nft_set_elem_active(&he->ext, genmask)) {
- *ext = &he->ext;
- return true;
- }
+ nft_set_elem_active(&he->ext, genmask))
+ return &he->ext;
}
- return false;
+ return NULL;
}
static u32 nft_jhash(const struct nft_set *set, const struct nft_hash *priv,
diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
index 9ac48e6b4332c..a844b33fa6002 100644
--- a/net/netfilter/nft_set_pipapo.c
+++ b/net/netfilter/nft_set_pipapo.c
@@ -407,8 +407,9 @@ int pipapo_refill(unsigned long *map, unsigned int len, unsigned int rules,
*
* Return: true on match, false otherwise.
*/
-bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext)
+const struct nft_set_ext *
+nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key)
{
struct nft_pipapo *priv = nft_set_priv(set);
struct nft_pipapo_scratch *scratch;
@@ -465,13 +466,15 @@ bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
scratch->map_index = map_index;
local_bh_enable();
- return false;
+ return NULL;
}
if (last) {
- *ext = &f->mt[b].e->ext;
- if (unlikely(nft_set_elem_expired(*ext) ||
- !nft_set_elem_active(*ext, genmask)))
+ const struct nft_set_ext *ext;
+
+ ext = &f->mt[b].e->ext;
+ if (unlikely(nft_set_elem_expired(ext) ||
+ !nft_set_elem_active(ext, genmask)))
goto next_match;
/* Last field: we're just returning the key without
@@ -482,7 +485,7 @@ bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
scratch->map_index = map_index;
local_bh_enable();
- return true;
+ return ext;
}
/* Swap bitmap indices: res_map is the initial bitmap for the
@@ -497,7 +500,7 @@ bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
out:
local_bh_enable();
- return false;
+ return NULL;
}
/**
diff --git a/net/netfilter/nft_set_pipapo_avx2.c b/net/netfilter/nft_set_pipapo_avx2.c
index be7c16c79f711..6c441e2dc8af3 100644
--- a/net/netfilter/nft_set_pipapo_avx2.c
+++ b/net/netfilter/nft_set_pipapo_avx2.c
@@ -1146,8 +1146,9 @@ static inline void pipapo_resmap_init_avx2(const struct nft_pipapo_match *m, uns
*
* Return: true on match, false otherwise.
*/
-bool nft_pipapo_avx2_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext)
+const struct nft_set_ext *
+nft_pipapo_avx2_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key)
{
struct nft_pipapo *priv = nft_set_priv(set);
struct nft_pipapo_scratch *scratch;
@@ -1155,17 +1156,18 @@ bool nft_pipapo_avx2_lookup(const struct net *net, const struct nft_set *set,
const struct nft_pipapo_match *m;
const struct nft_pipapo_field *f;
const u8 *rp = (const u8 *)key;
+ const struct nft_set_ext *ext;
unsigned long *res, *fill;
bool map_index;
- int i, ret = 0;
+ int i;
local_bh_disable();
if (unlikely(!irq_fpu_usable())) {
- bool fallback_res = nft_pipapo_lookup(net, set, key, ext);
+ ext = nft_pipapo_lookup(net, set, key);
local_bh_enable();
- return fallback_res;
+ return ext;
}
m = rcu_dereference(priv->match);
@@ -1182,7 +1184,7 @@ bool nft_pipapo_avx2_lookup(const struct net *net, const struct nft_set *set,
if (unlikely(!scratch)) {
kernel_fpu_end();
local_bh_enable();
- return false;
+ return NULL;
}
map_index = scratch->map_index;
@@ -1197,6 +1199,7 @@ bool nft_pipapo_avx2_lookup(const struct net *net, const struct nft_set *set,
next_match:
nft_pipapo_for_each_field(f, i, m) {
bool last = i == m->field_count - 1, first = !i;
+ int ret = 0;
#define NFT_SET_PIPAPO_AVX2_LOOKUP(b, n) \
(ret = nft_pipapo_avx2_lookup_##b##b_##n(res, fill, f, \
@@ -1244,10 +1247,10 @@ bool nft_pipapo_avx2_lookup(const struct net *net, const struct nft_set *set,
goto out;
if (last) {
- *ext = &f->mt[ret].e->ext;
- if (unlikely(nft_set_elem_expired(*ext) ||
- !nft_set_elem_active(*ext, genmask))) {
- ret = 0;
+ ext = &f->mt[ret].e->ext;
+ if (unlikely(nft_set_elem_expired(ext) ||
+ !nft_set_elem_active(ext, genmask))) {
+ ext = NULL;
goto next_match;
}
@@ -1264,5 +1267,5 @@ bool nft_pipapo_avx2_lookup(const struct net *net, const struct nft_set *set,
kernel_fpu_end();
local_bh_enable();
- return ret >= 0;
+ return ext;
}
diff --git a/net/netfilter/nft_set_rbtree.c b/net/netfilter/nft_set_rbtree.c
index 2e8ef16ff191d..938a257c069e2 100644
--- a/net/netfilter/nft_set_rbtree.c
+++ b/net/netfilter/nft_set_rbtree.c
@@ -52,9 +52,9 @@ static bool nft_rbtree_elem_expired(const struct nft_rbtree_elem *rbe)
return nft_set_elem_expired(&rbe->ext);
}
-static bool __nft_rbtree_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext,
- unsigned int seq)
+static const struct nft_set_ext *
+__nft_rbtree_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key, unsigned int seq)
{
struct nft_rbtree *priv = nft_set_priv(set);
const struct nft_rbtree_elem *rbe, *interval = NULL;
@@ -65,7 +65,7 @@ static bool __nft_rbtree_lookup(const struct net *net, const struct nft_set *set
parent = rcu_dereference_raw(priv->root.rb_node);
while (parent != NULL) {
if (read_seqcount_retry(&priv->count, seq))
- return false;
+ return NULL;
rbe = rb_entry(parent, struct nft_rbtree_elem, node);
@@ -87,50 +87,48 @@ static bool __nft_rbtree_lookup(const struct net *net, const struct nft_set *set
}
if (nft_rbtree_elem_expired(rbe))
- return false;
+ return NULL;
if (nft_rbtree_interval_end(rbe)) {
if (nft_set_is_anonymous(set))
- return false;
+ return NULL;
parent = rcu_dereference_raw(parent->rb_left);
interval = NULL;
continue;
}
- *ext = &rbe->ext;
- return true;
+ return &rbe->ext;
}
}
if (set->flags & NFT_SET_INTERVAL && interval != NULL &&
nft_set_elem_active(&interval->ext, genmask) &&
!nft_rbtree_elem_expired(interval) &&
- nft_rbtree_interval_start(interval)) {
- *ext = &interval->ext;
- return true;
- }
+ nft_rbtree_interval_start(interval))
+ return &interval->ext;
- return false;
+ return NULL;
}
INDIRECT_CALLABLE_SCOPE
-bool nft_rbtree_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext)
+const struct nft_set_ext *
+nft_rbtree_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key)
{
struct nft_rbtree *priv = nft_set_priv(set);
unsigned int seq = read_seqcount_begin(&priv->count);
- bool ret;
+ const struct nft_set_ext *ext;
- ret = __nft_rbtree_lookup(net, set, key, ext, seq);
- if (ret || !read_seqcount_retry(&priv->count, seq))
- return ret;
+ ext = __nft_rbtree_lookup(net, set, key, seq);
+ if (ext || !read_seqcount_retry(&priv->count, seq))
+ return ext;
read_lock_bh(&priv->lock);
seq = read_seqcount_begin(&priv->count);
- ret = __nft_rbtree_lookup(net, set, key, ext, seq);
+ ext = __nft_rbtree_lookup(net, set, key, seq);
read_unlock_bh(&priv->lock);
- return ret;
+ return ext;
}
static bool __nft_rbtree_get(const struct net *net, const struct nft_set *set,
--
2.51.0
next prev parent reply other threads:[~2025-09-17 12:46 UTC|newest]
Thread overview: 205+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-17 12:31 [PATCH 6.16 000/189] 6.16.8-rc1 review Greg Kroah-Hartman
2025-09-17 12:31 ` [PATCH 6.16 001/189] fs: add a FMODE_ flag to indicate IOCB_HAS_METADATA availability Greg Kroah-Hartman
2025-09-17 12:31 ` [PATCH 6.16 002/189] block: dont silently ignore metadata for sync read/write Greg Kroah-Hartman
2025-09-17 12:31 ` [PATCH 6.16 003/189] coredump: dont pointlessly check and spew warnings Greg Kroah-Hartman
2025-09-17 12:31 ` [PATCH 6.16 004/189] fuse: Block access to folio overlimit Greg Kroah-Hartman
2025-09-17 12:31 ` [PATCH 6.16 005/189] fhandle: use more consistent rules for decoding file handle from userns Greg Kroah-Hartman
2025-09-17 12:31 ` [PATCH 6.16 006/189] dma-debug: dont enforce dma mapping check on noncoherent allocations Greg Kroah-Hartman
2025-09-17 12:31 ` [PATCH 6.16 007/189] perf: Fix the POLL_HUP delivery breakage Greg Kroah-Hartman
2025-09-17 12:31 ` [PATCH 6.16 008/189] irqchip/mvebu-gicp: Fix an IS_ERR() vs NULL check in probe() Greg Kroah-Hartman
2025-09-17 12:31 ` [PATCH 6.16 009/189] Bluetooth: hci_conn: Fix not cleaning up Broadcaster/Broadcast Source Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 010/189] iommu/vt-d: Split intel_iommu_domain_alloc_paging_flags() Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 011/189] iommu/vt-d: Create unique domain ops for each stage Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 012/189] iommu/vt-d: Split paging_domain_compatible() Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 013/189] iommu/vt-d: Make iotlb_sync_map a static property of dmar_domain Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 014/189] Bluetooth: hci_conn: Fix running bis_cleanup for hci_conn->type PA_LINK Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 015/189] Bluetooth: ISO: Fix getname not returning broadcast fields Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 016/189] Revert "drm/amdgpu: Add more checks to PSP mailbox" Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 017/189] flexfiles/pNFS: fix NULL checks on result of ff_layout_choose_ds_for_read Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 018/189] SUNRPC: call xs_sock_process_cmsg for all cmsg Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 019/189] NFSv4: Dont clear capabilities that wont be reset Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 020/189] md: keep recovery_cp in mdp_superblock_s Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 021/189] trace/fgraph: Fix error handling Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 022/189] NFSv4: Clear the NFS_CAP_FS_LOCATIONS flag if it is not set Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 023/189] NFSv4: Clear NFS_CAP_OPEN_XOR and NFS_CAP_DELEGTIME if not supported Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 024/189] NFSv4: Clear the NFS_CAP_XATTR flag if not supported by the server Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 025/189] tracing: Fix tracing_marker may trigger page fault during preempt_disable Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 026/189] nfs/localio: restore creds before releasing pageio data Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 027/189] ftrace/samples: Fix function size computation Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 028/189] tracing/osnoise: Fix null-ptr-deref in bitmap_parselist() Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 029/189] NFS: Serialise O_DIRECT i/o and truncate() Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 030/189] NFSv4.2: Serialise O_DIRECT i/o and fallocate() Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 031/189] NFSv4.2: Serialise O_DIRECT i/o and clone range Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 032/189] NFSv4.2: Serialise O_DIRECT i/o and copy range Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 033/189] NFS: nfs_invalidate_folio() must observe the offset and size arguments Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 034/189] NFSv4/flexfiles: Fix layout merge mirror check Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 035/189] tracing: Silence warning when chunk allocation fails in trace_pid_write Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 036/189] bpf, cpumap: Disable page_pool direct xdp_return need larger scope Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 037/189] cpufreq/amd-pstate: Fix setting of CPPC.min_perf in active mode for performance governor Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 038/189] s390/pai: Deny all events not handled by this PMU Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 039/189] s390/cpum_cf: Deny all sampling events by counter PMU Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 040/189] cpufreq/amd-pstate: Fix a regression leading to EPP 0 after resume Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 041/189] bpf: Fix out-of-bounds dynptr write in bpf_crypto_crypt Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 042/189] xsk: Fix immature cq descriptor production Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 043/189] rqspinlock: Choose trylock fallback for NMI waiters Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 044/189] bpf: Allow fall back to interpreter for programs with stack size <= 512 Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 045/189] bpf: Tell memcg to use allow_spinning=false path in bpf_timer_init() Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 046/189] tcp_bpf: Call sk_msg_free() when tcp_bpf_send_verdict() fails to allocate psock->cork Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 047/189] proc: fix type confusion in pde_set_flags() Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 048/189] EDAC/altera: Delete an inappropriate dma_free_coherent() call Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 049/189] i2c: rtl9300: fix channel number bound check Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 050/189] Revert "SUNRPC: Dont allow waiting for exiting tasks" Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 051/189] compiler-clang.h: define __SANITIZE_*__ macros only when undefined Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 052/189] arm64: kexec: initialize kexec_buf struct in load_other_segments() Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 053/189] mptcp: sockopt: make sync_socket_options propagate SOCK_KEEPOPEN Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 054/189] doc: mptcp: net.mptcp.pm_type is deprecated Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 055/189] netlink: specs: mptcp: fix if-idx attribute type Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 056/189] ocfs2: fix recursive semaphore deadlock in fiemap call Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 057/189] btrfs: fix squota compressed stats leak Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 058/189] btrfs: fix subvolume deletion lockup caused by inodes xarray race Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 059/189] i2c: i801: Hide Intel Birch Stream SoC TCO WDT Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 060/189] i2c: rtl9300: ensure data length is within supported range Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 061/189] i2c: rtl9300: remove broken SMBus Quick operation support Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 062/189] net: libwx: fix to enable RSS Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 063/189] net: usb: asix: ax88772: drop phylink use in PM to avoid MDIO runtime PM wakeups Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 064/189] PM: EM: Add function for registering a PD without capacity update Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 065/189] PM: hibernate: Restrict GFP mask in hibernation_snapshot() Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 066/189] wifi: iwlwifi: fix 130/1030 configs Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 067/189] s390: kexec: initialize kexec_buf struct Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 068/189] smb: client: fix compound alignment with encryption Greg Kroah-Hartman
2025-09-17 12:32 ` [PATCH 6.16 069/189] smb: client: fix data loss due to broken rename(2) Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 070/189] mtd: nand: raw: atmel: Respect tAR, tCLR in read setup timing Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 071/189] mtd: rawnand: stm32_fmc2: avoid overlapping mappings on ECC buffer Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 072/189] mtd: rawnand: stm32_fmc2: fix ECC overwrite Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 073/189] fuse: do not allow mapping a non-regular backing file Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 074/189] fuse: check if copy_file_range() returns larger than requested size Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 075/189] fuse: prevent overflow in copy_file_range return value Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 076/189] mm/hugetlb: add missing hugetlb_lock in __unmap_hugepage_range() Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 077/189] mm/khugepaged: fix the address passed to notifier on testing young Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 078/189] mm/vmalloc, mm/kasan: respect gfp mask in kasan_populate_vmalloc() Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 079/189] mm/memory-failure: fix VM_BUG_ON_PAGE(PagePoisoned(page)) when unpoison memory Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 080/189] mm/memory-failure: fix redundant updates for already poisoned pages Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 081/189] mm/damon/core: set quota->charged_from to jiffies at first charge window Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 082/189] mm/damon/lru_sort: avoid divide-by-zero in damon_lru_sort_apply_parameters() Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 083/189] drm/mediatek: fix potential OF node use-after-free Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 084/189] drm/i915/power: fix size for for_each_set_bit() in abox iteration Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 085/189] drm/xe: Attempt to bring bos back to VRAM after eviction Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 086/189] drm/xe: Allow the pm notifier to continue on failure Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 087/189] drm/xe: Block exec and rebind worker while evicting for suspend / hibernate Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 088/189] drm/amdgpu: fix a memory leak in fence cleanup when unloading Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 089/189] drm/amdgpu/vcn: Allow limiting ctx to instance 0 for AV1 at any time Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 090/189] drm/amdgpu/vcn4: Fix IB parsing with multiple engine info packages Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 091/189] drm/amd/display: Correct sequences and delays for DCN35 PG & RCG Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 092/189] drm/amd/display: remove oem i2c adapter on finish Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 093/189] drm/edid: Define the quirks in an enum list Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 094/189] drm/edid: Add support for quirks visible to DRM core and drivers Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 095/189] drm/dp: Add an EDID quirk for the DPCD register access probe Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 096/189] drm/amd/display: Disable DPCD Probe Quirk Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 097/189] btrfs: use readahead_expand() on compressed extents Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 098/189] btrfs: fix corruption reading compressed range when block size is smaller than page size Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 099/189] kernfs: Fix UAF in polling when open file is released Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 100/189] libceph: fix invalid accesses to ceph_connection_v1_info Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 101/189] ceph: fix race condition validating r_parent before applying state Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 102/189] ceph: fix race condition where r_parent becomes stale before sending message Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 103/189] ceph: always call ceph_shift_unused_folios_left() Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 104/189] ceph: fix crash after fscrypt_encrypt_pagecache_blocks() error Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 105/189] mtd: spinand: Add a ->configure_chip() hook Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 106/189] mtd: spinand: winbond: Enable high-speed modes on w25n0xjw Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 107/189] mtd: spinand: winbond: Fix oob_layout for W25N01JW Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 108/189] mm/damon/sysfs: fix use-after-free in state_show() Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 109/189] mm/damon/reclaim: avoid divide-by-zero in damon_reclaim_apply_parameters() Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 110/189] drm/amd/display: Destroy cached state in complete() callback Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 111/189] drm/amd/display: Drop dm_prepare_suspend() and dm_complete() Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 112/189] drm/amd/amdgpu: Declare isp firmware binary file Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 113/189] hrtimers: Unconditionally update target CPU base after offline timer migration Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 114/189] fs/resctrl: Eliminate false positive lockdep warning when reading SNC counters Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 115/189] x86/cpu/topology: Always try cpu_parse_topology_ext() on AMD/Hygon Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 116/189] Input: iqs7222 - avoid enabling unused interrupts Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 117/189] Input: i8042 - add TUXEDO InfinityBook Pro Gen10 AMD to i8042 quirk table Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 118/189] Input: xpad - add support for Flydigi Apex 5 Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 119/189] Revert "net: usb: asix: ax88772: drop phylink use in PM to avoid MDIO runtime PM wakeups" Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 120/189] tty: hvc_console: Call hvc_kick in hvc_write unconditionally Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 121/189] serial: sc16is7xx: fix bug in flow control levels init Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 122/189] dt-bindings: serial: brcm,bcm7271-uart: Constrain clocks Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 123/189] USB: serial: option: add Telit Cinterion FN990A w/audio compositions Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 124/189] USB: serial: option: add Telit Cinterion LE910C4-WWX new compositions Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 125/189] mtd: rawnand: nuvoton: Fix an error handling path in ma35_nand_chips_init() Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 126/189] drm/panthor: validate group queue count Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 127/189] net: fec: Fix possible NPD in fec_enet_phy_reset_after_clk_enable() Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 128/189] net: phylink: add lock for serializing concurrent pl->phydev writes with resolver Greg Kroah-Hartman
2025-09-17 12:33 ` [PATCH 6.16 129/189] net: phy: transfer phy_config_inband() locking responsibility to phylink Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 130/189] wifi: ath12k: Fix missing station power save configuration Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 131/189] wifi: ath12k: add link support for multi-link in arsta Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 132/189] wifi: ath12k: Add support to enqueue management frame at MLD level Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 133/189] wifi: ath12k: fix WMI TLV header misalignment Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 134/189] PCI: mvebu: Fix use of for_each_of_range() iterator Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 135/189] genetlink: fix genl_bind() invoking bind() after -EPERM Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 136/189] net: dsa: b53: fix ageing time for BCM53101 Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 137/189] net: bridge: Bounce invalid boolopts Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 138/189] tunnels: reset the GSO metadata before reusing the skb Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 139/189] docs: networking: can: change bcm_msg_head frames member to support flexible array Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 140/189] igb: Fix NULL pointer dereference in ethtool loopback test Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 141/189] igb: fix link test skipping when interface is admin down Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 142/189] i40e: fix IRQ freeing in i40e_vsi_request_irq_msix error path Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 143/189] drm/xe/configfs: Dont touch survivability_mode on fini Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 144/189] drm/amd/display: use udelay rather than fsleep Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 145/189] net: dev_ioctl: take ops lock in hwtstamp lower paths Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 146/189] macsec: sync features on RTM_NEWLINK Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 147/189] selftests: can: enable CONFIG_CAN_VCAN as a module Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 148/189] can: j1939: implement NETDEV_UNREGISTER notification handler Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 149/189] can: j1939: j1939_sk_bind(): call j1939_priv_put() immediately when j1939_local_ecu_get() failed Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 150/189] can: j1939: j1939_local_ecu_get(): undo increment when j1939_local_ecu_get() fails Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 151/189] can: xilinx_can: xcan_write_frame(): fix use-after-free of transmitted SKB Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 152/189] netfilter: nft_set_bitmap: fix lockdep splat due to missing annotation Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 153/189] netfilter: nft_set_pipapo: remove unused arguments Greg Kroah-Hartman
2025-09-17 12:34 ` Greg Kroah-Hartman [this message]
2025-09-17 12:34 ` [PATCH 6.16 155/189] netfilter: nft_set_pipapo: merge pipapo_get/lookup Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 156/189] netfilter: nft_set_pipapo: dont return bogus extension pointer Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 157/189] netfilter: nft_set_pipapo: dont check genbit from packetpath lookups Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 158/189] netfilter: nft_set_rbtree: continue traversal if element is inactive Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 159/189] netfilter: nf_tables: Reintroduce shortened deletion notifications Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 160/189] netfilter: nf_tables: place base_seq in struct net Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 161/189] netfilter: nf_tables: make nft_set_do_lookup available unconditionally Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 162/189] netfilter: nf_tables: restart set lookup on base_seq change Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 163/189] hsr: use rtnl lock when iterating over ports Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 164/189] hsr: use hsr_for_each_port_rtnl in hsr_port_get_hsr Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 165/189] hsr: hold rcu and dev lock for hsr_get_port_ndev Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 166/189] phy: qualcomm: phy-qcom-eusb2-repeater: fix override properties Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 167/189] dmaengine: idxd: Remove improper idxd_free Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 168/189] dmaengine: idxd: Fix refcount underflow on module unload Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 169/189] dmaengine: idxd: Fix double free in idxd_setup_wqs() Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 170/189] erofs: get rid of {get,put}_page() for ztailpacking data Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 171/189] erofs: remove need_kmap in erofs_read_metabuf() Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 172/189] erofs: unify meta buffers in z_erofs_fill_inode() Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 173/189] erofs: fix invalid algorithm for encoded extents Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 174/189] dmaengine: ti: edma: Fix memory allocation size for queue_priority_map Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 175/189] regulator: sy7636a: fix lifecycle of power good gpio Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 176/189] erofs: fix runtime warning on truncate_folio_batch_exceptionals() Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 177/189] xhci: dbc: decouple endpoint allocation from initialization Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 178/189] xhci: dbc: Fix full DbC transfer ring after several reconnects Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 179/189] xhci: fix memory leak regression when freeing xhci vdev devices depth first Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 180/189] USB: gadget: dummy-hcd: Fix locking bug in RT-enabled kernels Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 181/189] usb: typec: tcpm: properly deliver cable vdms to altmode drivers Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 182/189] usb: gadget: midi2: Fix missing UMP group attributes initialization Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 183/189] usb: gadget: midi2: Fix MIDI2 IN EP max packet size Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 184/189] dmaengine: qcom: bam_dma: Fix DT error handling for num-channels/ees Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 185/189] dmaengine: dw: dmamux: Fix device reference leak in rzn1_dmamux_route_allocate Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 186/189] phy: qcom: qmp-pcie: Fix PHY initialization when powered down by firmware Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 187/189] phy: tegra: xusb: fix device and OF node leak at probe Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 188/189] phy: ti: omap-usb2: fix device leak at unbind Greg Kroah-Hartman
2025-09-17 12:34 ` [PATCH 6.16 189/189] phy: ti-pipe3: " Greg Kroah-Hartman
2025-09-17 18:09 ` [PATCH 6.16 000/189] 6.16.8-rc1 review Hardik Garg
2025-09-17 19:08 ` Achill Gilgenast
2025-09-17 20:08 ` Jon Hunter
2025-09-17 20:51 ` Pascal Ernster
2025-09-19 8:23 ` Pascal Ernster
2025-09-18 2:37 ` Peter Schneider
2025-09-18 3:07 ` Takeshi Ogasawara
2025-09-18 5:16 ` Brett A C Sheffield
2025-09-18 10:46 ` [PATCH 6.16 000/189] " Anders Roxell
2025-09-18 11:43 ` Dileep malepu
2025-09-18 12:46 ` Ron Economos
2025-09-18 18:02 ` Mark Brown
2025-09-18 18:22 ` Florian Fainelli
2025-09-18 19:21 ` Pavel Machek
2025-09-19 11:11 ` Christian Heusel
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=20250917123355.633263942@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=fw@strlen.de \
--cc=pablo@netfilter.org \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--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