From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Pablo Neira Ayuso <pablo@netfilter.org>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 018/183] netfilter: nf_tables: GC transaction API to avoid race with control plane
Date: Wed, 4 Oct 2023 19:54:09 +0200 [thread overview]
Message-ID: <20231004175204.736467655@linuxfoundation.org> (raw)
In-Reply-To: <20231004175203.943277832@linuxfoundation.org>
5.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Pablo Neira Ayuso <pablo@netfilter.org>
commit 5f68718b34a531a556f2f50300ead2862278da26 upstream.
The set types rhashtable and rbtree use a GC worker to reclaim memory.
>From system work queue, in periodic intervals, a scan of the table is
done.
The major caveat here is that the nft transaction mutex is not held.
This causes a race between control plane and GC when they attempt to
delete the same element.
We cannot grab the netlink mutex from the work queue, because the
control plane has to wait for the GC work queue in case the set is to be
removed, so we get following deadlock:
cpu 1 cpu2
GC work transaction comes in , lock nft mutex
`acquire nft mutex // BLOCKS
transaction asks to remove the set
set destruction calls cancel_work_sync()
cancel_work_sync will now block forever, because it is waiting for the
mutex the caller already owns.
This patch adds a new API that deals with garbage collection in two
steps:
1) Lockless GC of expired elements sets on the NFT_SET_ELEM_DEAD_BIT
so they are not visible via lookup. Annotate current GC sequence in
the GC transaction. Enqueue GC transaction work as soon as it is
full. If ruleset is updated, then GC transaction is aborted and
retried later.
2) GC work grabs the mutex. If GC sequence has changed then this GC
transaction lost race with control plane, abort it as it contains
stale references to objects and let GC try again later. If the
ruleset is intact, then this GC transaction deactivates and removes
the elements and it uses call_rcu() to destroy elements.
Note that no elements are removed from GC lockless path, the _DEAD bit
is set and pointers are collected. GC catchall does not remove the
elements anymore too. There is a new set->dead flag that is set on to
abort the GC transaction to deal with set->ops->destroy() path which
removes the remaining elements in the set from commit_release, where no
mutex is held.
To deal with GC when mutex is held, which allows safe deactivate and
removal, add sync GC API which releases the set element object via
call_rcu(). This is used by rbtree and pipapo backends which also
perform garbage collection from control plane path.
Since element removal from sets can happen from control plane and
element garbage collection/timeout, it is necessary to keep the set
structure alive until all elements have been deactivated and destroyed.
We cannot do a cancel_work_sync or flush_work in nft_set_destroy because
its called with the transaction mutex held, but the aforementioned async
work queue might be blocked on the very mutex that nft_set_destroy()
callchain is sitting on.
This gives us the choice of ABBA deadlock or UaF.
To avoid both, add set->refs refcount_t member. The GC API can then
increment the set refcount and release it once the elements have been
free'd.
Set backends are adapted to use the GC transaction API in a follow up
patch entitled:
("netfilter: nf_tables: use gc transaction API in set backends")
This is joint work with Florian Westphal.
Fixes: cfed7e1b1f8e ("netfilter: nf_tables: add set garbage collection helpers")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
include/net/netfilter/nf_tables.h | 64 +++++++-
net/netfilter/nf_tables_api.c | 248 ++++++++++++++++++++++++++++--
2 files changed, 300 insertions(+), 12 deletions(-)
diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
index 1458b3eae8ada..a930fc2defeee 100644
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -477,6 +477,7 @@ struct nft_set_elem_expr {
*
* @list: table set list node
* @bindings: list of set bindings
+ * @refs: internal refcounting for async set destruction
* @table: table this set belongs to
* @net: netnamespace this set belongs to
* @name: name of the set
@@ -506,6 +507,7 @@ struct nft_set_elem_expr {
struct nft_set {
struct list_head list;
struct list_head bindings;
+ refcount_t refs;
struct nft_table *table;
possible_net_t net;
char *name;
@@ -527,7 +529,8 @@ struct nft_set {
struct list_head pending_update;
/* runtime data below here */
const struct nft_set_ops *ops ____cacheline_aligned;
- u16 flags:14,
+ u16 flags:13,
+ dead:1,
genmask:2;
u8 klen;
u8 dlen;
@@ -1525,6 +1528,32 @@ static inline void nft_set_elem_clear_busy(struct nft_set_ext *ext)
clear_bit(NFT_SET_ELEM_BUSY_BIT, word);
}
+#define NFT_SET_ELEM_DEAD_MASK (1 << 3)
+
+#if defined(__LITTLE_ENDIAN_BITFIELD)
+#define NFT_SET_ELEM_DEAD_BIT 3
+#elif defined(__BIG_ENDIAN_BITFIELD)
+#define NFT_SET_ELEM_DEAD_BIT (BITS_PER_LONG - BITS_PER_BYTE + 3)
+#else
+#error
+#endif
+
+static inline void nft_set_elem_dead(struct nft_set_ext *ext)
+{
+ unsigned long *word = (unsigned long *)ext;
+
+ BUILD_BUG_ON(offsetof(struct nft_set_ext, genmask) != 0);
+ set_bit(NFT_SET_ELEM_DEAD_BIT, word);
+}
+
+static inline int nft_set_elem_is_dead(const struct nft_set_ext *ext)
+{
+ unsigned long *word = (unsigned long *)ext;
+
+ BUILD_BUG_ON(offsetof(struct nft_set_ext, genmask) != 0);
+ return test_bit(NFT_SET_ELEM_DEAD_BIT, word);
+}
+
/**
* struct nft_trans - nf_tables object update in transaction
*
@@ -1656,6 +1685,38 @@ struct nft_trans_flowtable {
#define nft_trans_flowtable_flags(trans) \
(((struct nft_trans_flowtable *)trans->data)->flags)
+#define NFT_TRANS_GC_BATCHCOUNT 256
+
+struct nft_trans_gc {
+ struct list_head list;
+ struct net *net;
+ struct nft_set *set;
+ u32 seq;
+ u8 count;
+ void *priv[NFT_TRANS_GC_BATCHCOUNT];
+ struct rcu_head rcu;
+};
+
+struct nft_trans_gc *nft_trans_gc_alloc(struct nft_set *set,
+ unsigned int gc_seq, gfp_t gfp);
+void nft_trans_gc_destroy(struct nft_trans_gc *trans);
+
+struct nft_trans_gc *nft_trans_gc_queue_async(struct nft_trans_gc *gc,
+ unsigned int gc_seq, gfp_t gfp);
+void nft_trans_gc_queue_async_done(struct nft_trans_gc *gc);
+
+struct nft_trans_gc *nft_trans_gc_queue_sync(struct nft_trans_gc *gc, gfp_t gfp);
+void nft_trans_gc_queue_sync_done(struct nft_trans_gc *trans);
+
+void nft_trans_gc_elem_add(struct nft_trans_gc *gc, void *priv);
+
+struct nft_trans_gc *nft_trans_gc_catchall(struct nft_trans_gc *gc,
+ unsigned int gc_seq);
+
+void nft_setelem_data_deactivate(const struct net *net,
+ const struct nft_set *set,
+ struct nft_set_elem *elem);
+
int __init nft_chain_filter_init(void);
void nft_chain_filter_fini(void);
@@ -1683,6 +1744,7 @@ struct nftables_pernet {
u64 table_handle;
unsigned int base_seq;
u8 validate_state;
+ unsigned int gc_seq;
};
extern unsigned int nf_tables_net_id;
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 9ac8b83b4a458..a389240a67f32 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -31,7 +31,9 @@ static LIST_HEAD(nf_tables_expressions);
static LIST_HEAD(nf_tables_objects);
static LIST_HEAD(nf_tables_flowtables);
static LIST_HEAD(nf_tables_destroy_list);
+static LIST_HEAD(nf_tables_gc_list);
static DEFINE_SPINLOCK(nf_tables_destroy_list_lock);
+static DEFINE_SPINLOCK(nf_tables_gc_list_lock);
enum {
NFT_VALIDATE_SKIP = 0,
@@ -122,6 +124,9 @@ static void nft_validate_state_update(struct net *net, u8 new_validate_state)
static void nf_tables_trans_destroy_work(struct work_struct *w);
static DECLARE_WORK(trans_destroy_work, nf_tables_trans_destroy_work);
+static void nft_trans_gc_work(struct work_struct *work);
+static DECLARE_WORK(trans_gc_work, nft_trans_gc_work);
+
static void nft_ctx_init(struct nft_ctx *ctx,
struct net *net,
const struct sk_buff *skb,
@@ -583,10 +588,6 @@ static int nft_trans_set_add(const struct nft_ctx *ctx, int msg_type,
return __nft_trans_set_add(ctx, msg_type, set, NULL);
}
-static void nft_setelem_data_deactivate(const struct net *net,
- const struct nft_set *set,
- struct nft_set_elem *elem);
-
static int nft_mapelem_deactivate(const struct nft_ctx *ctx,
struct nft_set *set,
const struct nft_set_iter *iter,
@@ -4757,6 +4758,7 @@ static int nf_tables_newset(struct sk_buff *skb, const struct nfnl_info *info,
INIT_LIST_HEAD(&set->bindings);
INIT_LIST_HEAD(&set->catchall_list);
+ refcount_set(&set->refs, 1);
set->table = table;
write_pnet(&set->net, net);
set->ops = ops;
@@ -4824,6 +4826,14 @@ static void nft_set_catchall_destroy(const struct nft_ctx *ctx,
}
}
+static void nft_set_put(struct nft_set *set)
+{
+ if (refcount_dec_and_test(&set->refs)) {
+ kfree(set->name);
+ kvfree(set);
+ }
+}
+
static void nft_set_destroy(const struct nft_ctx *ctx, struct nft_set *set)
{
int i;
@@ -4836,8 +4846,7 @@ static void nft_set_destroy(const struct nft_ctx *ctx, struct nft_set *set)
set->ops->destroy(ctx, set);
nft_set_catchall_destroy(ctx, set);
- kfree(set->name);
- kvfree(set);
+ nft_set_put(set);
}
static int nf_tables_delset(struct sk_buff *skb, const struct nfnl_info *info,
@@ -5906,7 +5915,8 @@ struct nft_set_ext *nft_set_catchall_lookup(const struct net *net,
list_for_each_entry_rcu(catchall, &set->catchall_list, list) {
ext = nft_set_elem_ext(set, catchall->elem);
if (nft_set_elem_active(ext, genmask) &&
- !nft_set_elem_expired(ext))
+ !nft_set_elem_expired(ext) &&
+ !nft_set_elem_is_dead(ext))
return ext;
}
@@ -6551,9 +6561,9 @@ static void nft_setelem_data_activate(const struct net *net,
nft_use_inc_restore(&(*nft_set_ext_obj(ext))->use);
}
-static void nft_setelem_data_deactivate(const struct net *net,
- const struct nft_set *set,
- struct nft_set_elem *elem)
+void nft_setelem_data_deactivate(const struct net *net,
+ const struct nft_set *set,
+ struct nft_set_elem *elem)
{
const struct nft_set_ext *ext = nft_set_elem_ext(set, elem->priv);
@@ -8887,6 +8897,207 @@ void nft_chain_del(struct nft_chain *chain)
list_del_rcu(&chain->list);
}
+static void nft_trans_gc_setelem_remove(struct nft_ctx *ctx,
+ struct nft_trans_gc *trans)
+{
+ void **priv = trans->priv;
+ unsigned int i;
+
+ for (i = 0; i < trans->count; i++) {
+ struct nft_set_elem elem = {
+ .priv = priv[i],
+ };
+
+ nft_setelem_data_deactivate(ctx->net, trans->set, &elem);
+ nft_setelem_remove(ctx->net, trans->set, &elem);
+ }
+}
+
+void nft_trans_gc_destroy(struct nft_trans_gc *trans)
+{
+ nft_set_put(trans->set);
+ put_net(trans->net);
+ kfree(trans);
+}
+
+static void nft_trans_gc_trans_free(struct rcu_head *rcu)
+{
+ struct nft_set_elem elem = {};
+ struct nft_trans_gc *trans;
+ struct nft_ctx ctx = {};
+ unsigned int i;
+
+ trans = container_of(rcu, struct nft_trans_gc, rcu);
+ ctx.net = read_pnet(&trans->set->net);
+
+ for (i = 0; i < trans->count; i++) {
+ elem.priv = trans->priv[i];
+ if (!nft_setelem_is_catchall(trans->set, &elem))
+ atomic_dec(&trans->set->nelems);
+
+ nf_tables_set_elem_destroy(&ctx, trans->set, elem.priv);
+ }
+
+ nft_trans_gc_destroy(trans);
+}
+
+static bool nft_trans_gc_work_done(struct nft_trans_gc *trans)
+{
+ struct nftables_pernet *nft_net;
+ struct nft_ctx ctx = {};
+
+ nft_net = nft_pernet(trans->net);
+
+ mutex_lock(&nft_net->commit_mutex);
+
+ /* Check for race with transaction, otherwise this batch refers to
+ * stale objects that might not be there anymore. Skip transaction if
+ * set has been destroyed from control plane transaction in case gc
+ * worker loses race.
+ */
+ if (READ_ONCE(nft_net->gc_seq) != trans->seq || trans->set->dead) {
+ mutex_unlock(&nft_net->commit_mutex);
+ return false;
+ }
+
+ ctx.net = trans->net;
+ ctx.table = trans->set->table;
+
+ nft_trans_gc_setelem_remove(&ctx, trans);
+ mutex_unlock(&nft_net->commit_mutex);
+
+ return true;
+}
+
+static void nft_trans_gc_work(struct work_struct *work)
+{
+ struct nft_trans_gc *trans, *next;
+ LIST_HEAD(trans_gc_list);
+
+ spin_lock(&nf_tables_destroy_list_lock);
+ list_splice_init(&nf_tables_gc_list, &trans_gc_list);
+ spin_unlock(&nf_tables_destroy_list_lock);
+
+ list_for_each_entry_safe(trans, next, &trans_gc_list, list) {
+ list_del(&trans->list);
+ if (!nft_trans_gc_work_done(trans)) {
+ nft_trans_gc_destroy(trans);
+ continue;
+ }
+ call_rcu(&trans->rcu, nft_trans_gc_trans_free);
+ }
+}
+
+struct nft_trans_gc *nft_trans_gc_alloc(struct nft_set *set,
+ unsigned int gc_seq, gfp_t gfp)
+{
+ struct net *net = read_pnet(&set->net);
+ struct nft_trans_gc *trans;
+
+ trans = kzalloc(sizeof(*trans), gfp);
+ if (!trans)
+ return NULL;
+
+ refcount_inc(&set->refs);
+ trans->set = set;
+ trans->net = get_net(net);
+ trans->seq = gc_seq;
+
+ return trans;
+}
+
+void nft_trans_gc_elem_add(struct nft_trans_gc *trans, void *priv)
+{
+ trans->priv[trans->count++] = priv;
+}
+
+static void nft_trans_gc_queue_work(struct nft_trans_gc *trans)
+{
+ spin_lock(&nf_tables_gc_list_lock);
+ list_add_tail(&trans->list, &nf_tables_gc_list);
+ spin_unlock(&nf_tables_gc_list_lock);
+
+ schedule_work(&trans_gc_work);
+}
+
+static int nft_trans_gc_space(struct nft_trans_gc *trans)
+{
+ return NFT_TRANS_GC_BATCHCOUNT - trans->count;
+}
+
+struct nft_trans_gc *nft_trans_gc_queue_async(struct nft_trans_gc *gc,
+ unsigned int gc_seq, gfp_t gfp)
+{
+ if (nft_trans_gc_space(gc))
+ return gc;
+
+ nft_trans_gc_queue_work(gc);
+
+ return nft_trans_gc_alloc(gc->set, gc_seq, gfp);
+}
+
+void nft_trans_gc_queue_async_done(struct nft_trans_gc *trans)
+{
+ if (trans->count == 0) {
+ nft_trans_gc_destroy(trans);
+ return;
+ }
+
+ nft_trans_gc_queue_work(trans);
+}
+
+struct nft_trans_gc *nft_trans_gc_queue_sync(struct nft_trans_gc *gc, gfp_t gfp)
+{
+ if (WARN_ON_ONCE(!lockdep_commit_lock_is_held(gc->net)))
+ return NULL;
+
+ if (nft_trans_gc_space(gc))
+ return gc;
+
+ call_rcu(&gc->rcu, nft_trans_gc_trans_free);
+
+ return nft_trans_gc_alloc(gc->set, 0, gfp);
+}
+
+void nft_trans_gc_queue_sync_done(struct nft_trans_gc *trans)
+{
+ WARN_ON_ONCE(!lockdep_commit_lock_is_held(trans->net));
+
+ if (trans->count == 0) {
+ nft_trans_gc_destroy(trans);
+ return;
+ }
+
+ call_rcu(&trans->rcu, nft_trans_gc_trans_free);
+}
+
+struct nft_trans_gc *nft_trans_gc_catchall(struct nft_trans_gc *gc,
+ unsigned int gc_seq)
+{
+ struct nft_set_elem_catchall *catchall;
+ const struct nft_set *set = gc->set;
+ struct nft_set_ext *ext;
+
+ list_for_each_entry_rcu(catchall, &set->catchall_list, list) {
+ ext = nft_set_elem_ext(set, catchall->elem);
+
+ if (!nft_set_elem_expired(ext))
+ continue;
+ if (nft_set_elem_is_dead(ext))
+ goto dead_elem;
+
+ nft_set_elem_dead(ext);
+dead_elem:
+ gc = nft_trans_gc_queue_async(gc, gc_seq, GFP_ATOMIC);
+ if (!gc)
+ return NULL;
+
+ nft_trans_gc_elem_add(gc, catchall->elem);
+ }
+
+ return gc;
+}
+
static void nf_tables_module_autoload_cleanup(struct net *net)
{
struct nftables_pernet *nft_net = nft_pernet(net);
@@ -9049,11 +9260,11 @@ static int nf_tables_commit(struct net *net, struct sk_buff *skb)
{
struct nftables_pernet *nft_net = nft_pernet(net);
struct nft_trans *trans, *next;
+ unsigned int base_seq, gc_seq;
LIST_HEAD(set_update_list);
struct nft_trans_elem *te;
struct nft_chain *chain;
struct nft_table *table;
- unsigned int base_seq;
LIST_HEAD(adl);
int err;
@@ -9130,6 +9341,10 @@ static int nf_tables_commit(struct net *net, struct sk_buff *skb)
WRITE_ONCE(nft_net->base_seq, base_seq);
+ /* Bump gc counter, it becomes odd, this is the busy mark. */
+ gc_seq = READ_ONCE(nft_net->gc_seq);
+ WRITE_ONCE(nft_net->gc_seq, ++gc_seq);
+
/* step 3. Start new generation, rules_gen_X now in use. */
net->nft.gencursor = nft_gencursor_next(net);
@@ -9218,6 +9433,7 @@ static int nf_tables_commit(struct net *net, struct sk_buff *skb)
nft_trans_destroy(trans);
break;
case NFT_MSG_DELSET:
+ nft_trans_set(trans)->dead = 1;
list_del_rcu(&nft_trans_set(trans)->list);
nf_tables_set_notify(&trans->ctx, nft_trans_set(trans),
NFT_MSG_DELSET, GFP_KERNEL);
@@ -9317,6 +9533,8 @@ static int nf_tables_commit(struct net *net, struct sk_buff *skb)
nft_commit_notify(net, NETLINK_CB(skb).portid);
nf_tables_gen_notify(net, skb, NFT_MSG_NEWGEN);
nf_tables_commit_audit_log(&adl, nft_net->base_seq);
+
+ WRITE_ONCE(nft_net->gc_seq, ++gc_seq);
nf_tables_commit_release(net);
return 0;
@@ -10349,6 +10567,7 @@ static int __net_init nf_tables_init_net(struct net *net)
mutex_init(&nft_net->commit_mutex);
nft_net->base_seq = 1;
nft_net->validate_state = NFT_VALIDATE_SKIP;
+ nft_net->gc_seq = 0;
return 0;
}
@@ -10377,10 +10596,16 @@ static void __net_exit nf_tables_exit_net(struct net *net)
WARN_ON_ONCE(!list_empty(&nft_net->notify_list));
}
+static void nf_tables_exit_batch(struct list_head *net_exit_list)
+{
+ flush_work(&trans_gc_work);
+}
+
static struct pernet_operations nf_tables_net_ops = {
.init = nf_tables_init_net,
.pre_exit = nf_tables_pre_exit_net,
.exit = nf_tables_exit_net,
+ .exit_batch = nf_tables_exit_batch,
.id = &nf_tables_net_id,
.size = sizeof(struct nftables_pernet),
};
@@ -10452,6 +10677,7 @@ static void __exit nf_tables_module_exit(void)
nft_chain_filter_fini();
nft_chain_route_fini();
unregister_pernet_subsys(&nf_tables_net_ops);
+ cancel_work_sync(&trans_gc_work);
cancel_work_sync(&trans_destroy_work);
rcu_barrier();
rhltable_destroy(&nft_objname_ht);
--
2.40.1
next prev parent reply other threads:[~2023-10-04 18:02 UTC|newest]
Thread overview: 213+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-04 17:53 [PATCH 5.15 000/183] 5.15.134-rc1 review Greg Kroah-Hartman
2023-10-04 17:53 ` [PATCH 5.15 001/183] NFS: Use the correct commit info in nfs_join_page_group() Greg Kroah-Hartman
2023-10-04 17:53 ` [PATCH 5.15 002/183] NFS: More fixes for nfs_direct_write_reschedule_io() Greg Kroah-Hartman
2023-10-04 17:53 ` [PATCH 5.15 003/183] NFS/pNFS: Report EINVAL errors from connect() to the server Greg Kroah-Hartman
2023-10-04 17:53 ` [PATCH 5.15 004/183] SUNRPC: Mark the cred for revalidation if the server rejects it Greg Kroah-Hartman
2023-10-04 17:53 ` [PATCH 5.15 005/183] NFSv4.1: use EXCHGID4_FLAG_USE_PNFS_DS for DS server Greg Kroah-Hartman
2023-10-04 17:53 ` [PATCH 5.15 006/183] NFSv4.1: fix pnfs MDS=DS session trunking Greg Kroah-Hartman
2023-10-04 17:53 ` [PATCH 5.15 007/183] tracing: Make trace_marker{,_raw} stream-like Greg Kroah-Hartman
2023-10-04 17:53 ` [PATCH 5.15 008/183] tracing: Increase trace array ref count on enable and filter files Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 009/183] ata: ahci: Drop pointless VPRINTK() calls and convert the remaining ones Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 010/183] ata: libahci: clear pending interrupt status Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 011/183] ext4: scope ret locally in ext4_try_to_trim_range() Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 012/183] ext4: change s_last_trim_minblks type to unsigned long Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 013/183] ext4: replace the traditional ternary conditional operator with with max()/min() Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 014/183] ext4: move setting of trimmed bit into ext4_try_to_trim_range() Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 015/183] ext4: do not let fstrim block system suspend Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 016/183] tracing: Have event inject files inc the trace array ref count Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 017/183] netfilter: nf_tables: dont skip expired elements during walk Greg Kroah-Hartman
2023-10-04 17:54 ` Greg Kroah-Hartman [this message]
2023-10-04 17:54 ` [PATCH 5.15 019/183] netfilter: nf_tables: adapt set backend to use GC transaction API Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 020/183] netfilter: nft_set_hash: mark set element as dead when deleting from packet path Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 021/183] netfilter: nf_tables: remove busy mark and gc batch API Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 022/183] netfilter: nf_tables: dont fail inserts if duplicate has expired Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 023/183] netfilter: nf_tables: fix GC transaction races with netns and netlink event exit path Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 024/183] netfilter: nf_tables: GC transaction race with netns dismantle Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 025/183] netfilter: nf_tables: GC transaction race with abort path Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 026/183] netfilter: nf_tables: use correct lock to protect gc_list Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 027/183] netfilter: nf_tables: defer gc run if previous batch is still pending Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 028/183] netfilter: nft_set_rbtree: skip sync GC for new elements in this transaction Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 029/183] netfilter: nft_set_rbtree: use read spinlock to avoid datapath contention Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 030/183] netfilter: nft_set_pipapo: call nft_trans_gc_queue_sync() in catchall GC Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 031/183] netfilter: nft_set_pipapo: stop GC iteration if GC transaction allocation fails Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 032/183] netfilter: nft_set_hash: try later when GC hits EAGAIN on iteration Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 033/183] netfilter: nf_tables: fix memleak when more than 255 elements expired Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 034/183] ASoC: meson: spdifin: start hw on dai probe Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 035/183] netfilter: nf_tables: disallow element removal on anonymous sets Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 036/183] bpf: Avoid deadlock when using queue and stack maps from NMI Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 037/183] selftests: tls: swap the TX and RX sockets in some tests Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 038/183] net/core: Fix ETH_P_1588 flow dissector Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 039/183] ASoC: imx-audmix: Fix return error with devm_clk_get() Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 040/183] iavf: do not process adminq tasks when __IAVF_IN_REMOVE_TASK is set Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 041/183] i40e: Add VF VLAN pruning Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 042/183] i40e: Fix VF VLAN offloading when port VLAN is configured Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 043/183] ionic: fix 16bit math issue when PAGE_SIZE >= 64KB Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 044/183] igc: Fix infinite initialization loop with early XDP redirect Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 045/183] ipv4: fix null-deref in ipv4_link_failure Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 046/183] powerpc/perf/hv-24x7: Update domain value check Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 047/183] dccp: fix dccp_v4_err()/dccp_v6_err() again Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 048/183] platform/x86: intel_scu_ipc: Check status after timeout in busy_loop() Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 049/183] platform/x86: intel_scu_ipc: Check status upon timeout in ipc_wait_for_interrupt() Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 050/183] platform/x86: intel_scu_ipc: Dont override scu in intel_scu_ipc_dev_simple_command() Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 051/183] platform/x86: intel_scu_ipc: Fail IPC send if still busy Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 052/183] x86/srso: Fix srso_show_state() side effect Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 053/183] x86/srso: Fix SBPB enablement for spec_rstack_overflow=off Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 054/183] net: hns3: fix GRE checksum offload issue Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 055/183] net: hns3: only enable unicast promisc when mac table full Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 056/183] net: hns3: fix fail to delete tc flower rules during reset issue Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 057/183] net: hns3: add 5ms delay before clear firmware reset irq source Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 058/183] net: bridge: use DEV_STATS_INC() Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 059/183] team: fix null-ptr-deref when team device type is changed Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 060/183] net: rds: Fix possible NULL-pointer dereference Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 061/183] netfilter: nf_tables: disable toggling dormant table state more than once Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 062/183] netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 063/183] locking/seqlock: Do the lockdep annotation before locking in do_write_seqcount_begin_nested() Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 064/183] net: ena: Flush XDP packets on error Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 065/183] bnxt_en: Flush XDP for bnxt_poll_nitroa0()s NAPI Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 066/183] igc: Expose tx-usecs coalesce setting to user Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 067/183] Fix up backport of 136191703038 ("interconnect: Teach lockdep about icc_bw_lock order") Greg Kroah-Hartman
2023-10-04 17:54 ` [PATCH 5.15 068/183] gpio: tb10x: Fix an error handling path in tb10x_gpio_probe() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 069/183] i2c: mux: demux-pinctrl: check the return value of devm_kstrdup() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 070/183] i2c: mux: gpio: Replace custom acpi_get_local_address() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 071/183] i2c: mux: gpio: Add missing fwnode_handle_put() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 072/183] xfs: bound maximum wait time for inodegc work Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 073/183] xfs: introduce xfs_inodegc_push() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 074/183] xfs: explicitly specify cpu when forcing inodegc delayed work to run immediately Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 075/183] xfs: check that per-cpu inodegc workers actually run on that cpu Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 076/183] xfs: disable reaping in fscounters scrub Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 077/183] xfs: fix xfs_inodegc_stop racing with mod_delayed_work Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 078/183] Input: i8042 - rename i8042-x86ia64io.h to i8042-acpipnpio.h Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 079/183] Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 080/183] perf jevents: Switch build to use jevents.py Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 081/183] perf build: Update build rule for generated files Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 082/183] netfilter: exthdr: add support for tcp option removal Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 083/183] netfilter: nft_exthdr: Fix non-linear header modification Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 084/183] ata: libata: Rename link flag ATA_LFLAG_NO_DB_DELAY Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 085/183] ata: ahci: Add support for AMD A85 FCH (Hudson D4) Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 086/183] ata: ahci: Rename board_ahci_mobile Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 087/183] ata: ahci: Add Elkhart Lake AHCI controller Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 088/183] scsi: qla2xxx: Select qpair depending on which CPU post_cmd() gets called Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 089/183] scsi: qla2xxx: Use raw_smp_processor_id() instead of smp_processor_id() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 090/183] btrfs: reset destination buffer when read_extent_buffer() gets invalid range Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 091/183] MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 092/183] drm/bridge: ti-sn65dsi83: Do not generate HFP/HBP/HSA and EOT packet Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 093/183] bus: ti-sysc: Use fsleep() instead of usleep_range() in sysc_reset() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 094/183] bus: ti-sysc: Fix missing AM35xx SoC matching Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 095/183] clk: tegra: fix error return case for recalc_rate Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 096/183] treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 1) Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 097/183] ARM: dts: omap: correct indentation Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 098/183] ARM: dts: ti: omap: Fix bandgap thermal cells addressing for omap3/4 Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 099/183] ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 100/183] bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 101/183] power: supply: ucs1002: fix error code in ucs1002_get_property() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 102/183] firmware: imx-dsp: Fix an error handling path in imx_dsp_setup_channels() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 103/183] xtensa: add default definition for XCHAL_HAVE_DIV32 Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 104/183] xtensa: iss/network: make functions static Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 105/183] xtensa: boot: dont add include-dirs Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 106/183] xtensa: boot/lib: fix function prototypes Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 107/183] soc: imx8m: Enable OCOTP clock for imx8mm before reading registers Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 108/183] gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 109/183] i2c: npcm7xx: Fix callback completion ordering Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 110/183] dma-debug: dont call __dma_entry_alloc_check_leak() under free_entries_lock Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 111/183] spi: sun6i: reduce DMA RX transfer width to single byte Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 112/183] spi: sun6i: fix race between DMA RX transfer completion and RX FIFO drain Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 113/183] parisc: sba: Fix compile warning wrt list of SBA devices Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 114/183] parisc: iosapic.c: Fix sparse warnings Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 115/183] parisc: drivers: Fix sparse warning Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 116/183] parisc: irq: Make irq_stack_union static to avoid " Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 117/183] scsi: qedf: Add synchronization between I/O completions and abort Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 118/183] scsi: ufs: core: Move __ufshcd_send_uic_cmd() outside host_lock Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 119/183] selftests/ftrace: Correctly enable event in instance-event.tc Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 120/183] ring-buffer: Avoid softlockup in ring_buffer_resize() Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 121/183] btrfs: improve error message after failure to add delayed dir index item Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 122/183] selftests: fix dependency checker script Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 123/183] ring-buffer: Do not attempt to read past "commit" Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 124/183] platform/mellanox: mlxbf-bootctl: add NET dependency into Kconfig Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 125/183] drm/amd/display: Dont check registers, if using AUX BL control Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 126/183] drm/amdgpu: Handle null atom context in VBIOS info ioctl Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 127/183] scsi: pm80xx: Use phy-specific SAS address when sending PHY_START command Greg Kroah-Hartman
2023-10-04 17:55 ` [PATCH 5.15 128/183] scsi: pm80xx: Avoid leaking tags when processing OPC_INB_SET_CONTROLLER_CONFIG command Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 129/183] smb3: correct places where ENOTSUPP is used instead of preferred EOPNOTSUPP Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 130/183] ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset() Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 131/183] spi: nxp-fspi: reset the FLSHxCR1 registers Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 132/183] spi: stm32: add a delay before SPI disable Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 133/183] ASoC: fsl: imx-pcm-rpmsg: Add SNDRV_PCM_INFO_BATCH flag Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 134/183] bpf: Clarify error expectations from bpf_clone_redirect Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 135/183] ASoC: imx-rpmsg: Set ignore_pmdown_time for dai_link Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 136/183] media: vb2: frame_vector.c: replace WARN_ONCE with a comment Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 137/183] powerpc/watchpoints: Disable preemption in thread_change_pc() Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 138/183] powerpc/watchpoint: Disable pagefaults when getting user instruction Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 139/183] powerpc/watchpoints: Annotate atomic context in more places Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 140/183] ncsi: Propagate carrier gain/loss events to the NCSI controller Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 141/183] fbdev/sh7760fb: Depend on FB=y Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 142/183] perf build: Define YYNOMEM as YYNOABORT for bison < 3.81 Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 143/183] sched/cpuacct: Optimize away RCU read lock Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 144/183] cgroup: Fix suspicious rcu_dereference_check() usage warning Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 145/183] nvme-pci: factor the iod mempool creation into a helper Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 146/183] nvme-pci: factor out a nvme_pci_alloc_dev helper Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 147/183] nvme-pci: do not set the NUMA node of device if it has none Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 148/183] watchdog: iTCO_wdt: No need to stop the timer in probe Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 149/183] watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 150/183] i40e: fix potential NULL pointer dereferencing of pf->vf i40e_sync_vsi_filters() Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 151/183] perf metric: Return early if no CPU PMU table exists Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 152/183] scsi: qla2xxx: Fix NULL pointer dereference in target mode Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 153/183] nvme-pci: always return an ERR_PTR from nvme_pci_alloc_dev Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 154/183] smack: Record transmuting in smk_transmuted Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 155/183] smack: Retrieve transmuting information in smack_inode_getsecurity() Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 156/183] Smack:- Use overlay inode label in smack_inode_copy_up() Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 157/183] iommu/arm-smmu-v3: Fix soft lockup triggered by arm_smmu_mm_invalidate_range Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 158/183] x86/srso: Add SRSO mitigation for Hygon processors Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 159/183] misc: rtsx: Fix some platforms can not boot and move the l1ss judgment to probe Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 160/183] Revert "tty: n_gsm: fix UAF in gsm_cleanup_mux" Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 161/183] serial: 8250_port: Check IRQ data before use Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 162/183] nilfs2: fix potential use after free in nilfs_gccache_submit_read_data() Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 163/183] netfilter: nf_tables: disallow rule removal from chain binding Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 164/183] ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre M70q Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 165/183] ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 166/183] i2c: i801: unregister tco_pdev in i801_probe() error path Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 167/183] kernel/sched: Modify initial boot task idle setup Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 168/183] sched/rt: Fix live lock between select_fallback_rq() and RT push Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 169/183] io_uring/fs: remove sqe->rw_flags checking from LINKAT Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 170/183] Revert "SUNRPC dont update timeout value on connection reset" Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 171/183] proc: nommu: /proc/<pid>/maps: release mmap read lock Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 172/183] ring-buffer: Update "shortest_full" in polling Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 173/183] btrfs: properly report 0 avail for very full file systems Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 174/183] bpf: Fix BTF_ID symbol generation collision Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 175/183] bpf: Fix BTF_ID symbol generation collision in tools/ Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 176/183] net: thunderbolt: Fix TCPv6 GSO checksum calculation Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 177/183] ata: libata-core: Fix ata_port_request_pm() locking Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 178/183] ata: libata-core: Fix port and device removal Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 179/183] ata: libata-core: Do not register PM operations for SAS ports Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 180/183] ata: libata-sata: increase PMP SRST timeout to 10s Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 181/183] fs: binfmt_elf_efpic: fix personality for ELF-FDPIC Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 182/183] drm/meson: fix memory leak on ->hpd_notify callback Greg Kroah-Hartman
2023-10-04 17:56 ` [PATCH 5.15 183/183] netfilter: nf_tables: fix kdoc warnings after gc rework Greg Kroah-Hartman
2023-10-04 18:43 ` [PATCH 5.15 000/183] 5.15.134-rc1 review Florian Fainelli
2023-10-06 10:25 ` Greg Kroah-Hartman
2023-10-06 10:37 ` Harshit Mogalapalli
2023-10-06 11:03 ` Greg Kroah-Hartman
2023-10-06 12:15 ` Sasha Levin
2023-10-06 17:23 ` Florian Fainelli
2023-10-05 1:01 ` Shuah Khan
2023-10-05 1:31 ` SeongJae Park
2023-10-05 17:49 ` Naresh Kamboju
2023-10-06 16:20 ` Liam R. Howlett
2023-10-06 16:47 ` Paul E. McKenney
2023-10-06 17:57 ` Liam R. Howlett
2023-10-06 18:20 ` Paul E. McKenney
2023-10-08 1:22 ` Joel Fernandes
2023-10-09 1:20 ` Paul E. McKenney
2023-10-11 1:34 ` Paul E. McKenney
2023-10-11 5:05 ` Joel Fernandes
2023-10-11 10:25 ` Paul E. McKenney
2023-10-11 13:47 ` Frederic Weisbecker
2023-10-11 16:31 ` Paul E. McKenney
2023-10-11 2:44 ` Joel Fernandes
2023-10-11 3:11 ` Paul E. McKenney
2023-10-05 22:18 ` Guenter Roeck
2023-10-06 7:40 ` Ron Economos
2023-10-06 9:32 ` Jon Hunter
2023-10-11 15:58 ` Joel Fernandes
2023-10-11 17:44 ` Greg Kroah-Hartman
2023-10-16 2:25 ` Joel Fernandes
2023-10-16 8:06 ` 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=20231004175204.736467655@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=pablo@netfilter.org \
--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;
as well as URLs for NNTP newsgroup(s).