stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Pablo Neira Ayuso <pablo@netfilter.org>
Subject: [PATCH 6.4 091/206] netfilter: nf_tables: GC transaction API to avoid race with control plane
Date: Sun, 13 Aug 2023 23:17:41 +0200	[thread overview]
Message-ID: <20230813211727.677328785@linuxfoundation.org> (raw)
In-Reply-To: <20230813211724.969019629@linuxfoundation.org>

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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/net/netfilter/nf_tables.h |   64 +++++++++
 net/netfilter/nf_tables_api.c     |  248 ++++++++++++++++++++++++++++++++++++--
 2 files changed, 300 insertions(+), 12 deletions(-)

--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -512,6 +512,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
@@ -541,6 +542,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;
@@ -562,7 +564,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;
@@ -1592,6 +1595,32 @@ static inline void nft_set_elem_clear_bu
 	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
  *
@@ -1729,6 +1758,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);
 
@@ -1755,6 +1816,7 @@ struct nftables_pernet {
 	struct mutex		commit_mutex;
 	u64			table_handle;
 	unsigned int		base_seq;
+	unsigned int		gc_seq;
 };
 
 extern unsigned int nf_tables_net_id;
--- 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,
@@ -120,6 +122,9 @@ static void nft_validate_state_update(st
 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,
@@ -581,10 +586,6 @@ static int nft_trans_set_add(const struc
 	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,
@@ -5054,6 +5055,7 @@ static int nf_tables_newset(struct sk_bu
 
 	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;
@@ -5121,6 +5123,14 @@ static void nft_set_catchall_destroy(con
 	}
 }
 
+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;
@@ -5133,8 +5143,7 @@ static void nft_set_destroy(const struct
 
 	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,
@@ -6255,7 +6264,8 @@ struct nft_set_ext *nft_set_catchall_loo
 	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;
 	}
 
@@ -6907,9 +6917,9 @@ static void nft_setelem_data_activate(co
 		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);
 
@@ -9386,6 +9396,207 @@ void nft_chain_del(struct nft_chain *cha
 	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);
@@ -9548,11 +9759,11 @@ static int nf_tables_commit(struct net *
 {
 	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;
 
@@ -9629,6 +9840,10 @@ static int nf_tables_commit(struct net *
 
 	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);
 
@@ -9733,6 +9948,7 @@ static int nf_tables_commit(struct net *
 			break;
 		case NFT_MSG_DELSET:
 		case NFT_MSG_DESTROYSET:
+			nft_trans_set(trans)->dead = 1;
 			list_del_rcu(&nft_trans_set(trans)->list);
 			nf_tables_set_notify(&trans->ctx, nft_trans_set(trans),
 					     trans->msg_type, GFP_KERNEL);
@@ -9835,6 +10051,8 @@ static int nf_tables_commit(struct net *
 	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;
@@ -10884,6 +11102,7 @@ static int __net_init nf_tables_init_net
 	INIT_LIST_HEAD(&nft_net->notify_list);
 	mutex_init(&nft_net->commit_mutex);
 	nft_net->base_seq = 1;
+	nft_net->gc_seq = 0;
 
 	return 0;
 }
@@ -10912,10 +11131,16 @@ static void __net_exit nf_tables_exit_ne
 	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),
 };
@@ -10987,6 +11212,7 @@ static void __exit nf_tables_module_exit
 	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);



  parent reply	other threads:[~2023-08-13 21:28 UTC|newest]

Thread overview: 224+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-13 21:16 [PATCH 6.4 000/206] 6.4.11-rc1 review Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 001/206] tpm/tpm_tis: Disable interrupts for TUXEDO InfinityBook S 15/17 Gen7 Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 002/206] tpm: Disable RNG for all AMD fTPMs Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 003/206] tpm/tpm_tis: Disable interrupts for Lenovo P620 devices Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 004/206] tpm: Add a helper for checking hwrng enabled Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 005/206] ksmbd: validate command request size Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 006/206] ksmbd: fix wrong next length validation of ea buffer in smb2_set_ea() Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 007/206] KVM: SEV: snapshot the GHCB before accessing it Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 008/206] KVM: SEV: only access GHCB fields once Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 009/206] wifi: nl80211: fix integer overflow in nl80211_parse_mbssid_elems() Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 010/206] wifi: rtw89: fix 8852AE disconnection caused by RX full flags Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 011/206] selftests: forwarding: Set default IPv6 traceroute utility Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 012/206] wireguard: allowedips: expand maximum node depth Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 013/206] mmc: moxart: read scr register without changing byte order Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 014/206] mmc: sdhci-f-sdh30: Replace with sdhci_pltfm Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 015/206] ipv6: adjust ndisc_is_useropt() to also return true for PIO Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 016/206] selftests: mptcp: join: fix delete and re-add test Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 017/206] selftests: mptcp: join: fix implicit EP test Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 018/206] mptcp: avoid bogus reset on fallback close Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 019/206] mptcp: fix disconnect vs accept race Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 020/206] dmaengine: pl330: Return DMA_PAUSED when transaction is paused Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 021/206] dmaengine: xilinx: xdma: Fix interrupt vector setting Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 022/206] net: mana: Fix MANA VF unload when hardware is unresponsive Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 023/206] ACPI: resource: revert "Remove "Zen" specific match and quirks" Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 024/206] ACPI: resource: Always use MADT override IRQ settings for all legacy non i8042 IRQs Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 025/206] ACPI: resource: Honor MADT INT_SRC_OVR settings for IRQ1 on AMD Zen Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 026/206] ACPI: resource: Add IRQ override quirk for PCSpecialist Elimina Pro 16 M Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 027/206] zram: take device and not only bvec offset into account Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 028/206] io_uring/parisc: Adjust pgoff in io_uring mmap() for parisc Greg Kroah-Hartman
2023-08-14  8:36   ` Christoph Biedl
2023-08-13 21:16 ` [PATCH 6.4 029/206] parisc: Fix lightweight spinlock checks to not break futexes Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 030/206] riscv: Start of DRAM should at least be aligned on PMD size for the direct mapping Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 031/206] riscv/kexec: load initrd high in available memory Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 032/206] riscv,mmio: Fix readX()-to-delay() ordering Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 033/206] riscv/kexec: handle R_RISCV_CALL_PLT relocation type Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 034/206] riscv: mm: fix 2 instances of -Wmissing-variable-declarations Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 035/206] nvme: fix possible hang when removing a controller during error recovery Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 036/206] nvme-tcp: fix potential unbalanced freeze & unfreeze Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 037/206] nvme-rdma: " Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 038/206] nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 039/206] drm/nouveau/gr: enable memory loads on helper invocation on all channels Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 040/206] drm/nouveau/nvkm/dp: Add workaround to fix DP 1.3+ DPCD issues Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 041/206] drm/shmem-helper: Reset vma->vm_ops before calling dma_buf_mmap() Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 042/206] drm/amdgpu: fix possible UAF in amdgpu_cs_pass1() Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 043/206] drm/amd/pm: correct the pcie width for smu 13.0.0 Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 044/206] drm/amd/display: Fix a regression on Polaris cards Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 045/206] drm/amd/display: check attr flag before set cursor degamma on DCN3+ Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 046/206] drm/amd: Disable S/G for APUs when 64GB or more host memory Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 047/206] tpm: tpm_tis: Fix UPX-i11 DMI_MATCH condition Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 048/206] tpm_tis: Opt-in interrupts Greg Kroah-Hartman
2023-08-13 21:16 ` [PATCH 6.4 049/206] cpuidle: dt_idle_genpd: Add helper function to remove genpd topology Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 050/206] cpuidle: psci: Move enabling OSI mode after power domains creation Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 051/206] io_uring: correct check for O_TMPFILE Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 052/206] zsmalloc: fix races between modifications of fullness and isolated Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 053/206] hwmon: (pmbus/bel-pfe) Enable PMBUS_SKIP_STATUS_CHECK for pfe1100 Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 054/206] radix tree test suite: fix incorrect allocation size for pthreads Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 055/206] cpufreq: amd-pstate: fix global sysfs attribute type Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 056/206] fs/proc/kcore: reinstate bounce buffer for KCORE_TEXT regions Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 057/206] nilfs2: fix use-after-free of nilfs_root in dirtying inodes via iput Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 058/206] accel/ivpu: Add set_pages_array_wc/uc for internal buffers Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 059/206] hugetlb: do not clear hugetlb dtor until allocating vmemmap Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 060/206] mm/damon/core: initialize damo_filter->list from damos_new_filter() Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 061/206] selftests: mm: ksm: fix incorrect evaluation of parameter Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 062/206] mm: memory-failure: fix potential unexpected return value from unpoison_memory() Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 063/206] mm: memory-failure: avoid false hwpoison page mapped error info Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 064/206] drm/amd/pm: expose swctf threshold setting for legacy powerplay Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 065/206] drm/amd/pm: avoid unintentional shutdown due to temperature momentary fluctuation Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 066/206] iio: cros_ec: Fix the allocation size for cros_ec_command Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 067/206] iio: frequency: admv1013: propagate errors from regulator_get_voltage() Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 068/206] iio: adc: ad7192: Fix ac excitation feature Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 069/206] iio: adc: meson: fix core clock enable/disable moment Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 070/206] iio: adc: ina2xx: avoid NULL pointer dereference on OF device match Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 071/206] binder: fix memory leak in binder_init() Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 072/206] misc: rtsx: judge ASPM Mode to set PETXCFG Reg Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 073/206] thunderbolt: Fix memory leak in tb_handle_dp_bandwidth_request() Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 074/206] usb-storage: alauda: Fix uninit-value in alauda_check_media() Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 075/206] usb: dwc3: Properly handle processing of pending events Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 076/206] USB: Gadget: core: Help prevent panic during UVC unconfigure Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 077/206] usb: common: usb-conn-gpio: Prevent bailing out if initial role is none Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 078/206] usb: typec: tcpm: Fix response to vsafe0V event Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 079/206] usb: typec: altmodes/displayport: Signal hpd when configuring pin assignment Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 080/206] x86/srso: Fix build breakage with the LLVM linker Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 081/206] x86/vdso: Choose the right GDT_ENTRY_CPUNODE for 32-bit getcpu() on 64-bit kernel Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 082/206] x86/cpu/amd: Enable Zenbleed fix for AMD Custom APU 0405 Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 083/206] x86/mm: Fix VDSO and VVAR placement on 5-level paging machines Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 084/206] x86/sev: Do not try to parse for the CC blob on non-AMD hardware Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 085/206] x86/linkage: Fix typo of BUILD_VDSO in asm/linkage.h Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 086/206] x86/speculation: Add cpu_show_gds() prototype Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 087/206] x86: Move gds_ucode_mitigated() declaration to header Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 088/206] Revert "PCI: mvebu: Mark driver as BROKEN" Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 089/206] drm/nouveau/disp: Revert a NULL check inside nouveau_connector_get_modes Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 090/206] netfilter: nf_tables: dont skip expired elements during walk Greg Kroah-Hartman
2023-08-13 22:17   ` Florian Westphal
2023-08-14 15:14     ` Greg Kroah-Hartman
2023-08-14 15:41       ` Pablo Neira Ayuso
2023-08-14 16:11         ` Greg Kroah-Hartman
2023-08-13 21:17 ` Greg Kroah-Hartman [this message]
2023-08-13 21:17 ` [PATCH 6.4 092/206] netfilter: nf_tables: adapt set backend to use GC transaction API Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 093/206] netfilter: nft_set_hash: mark set element as dead when deleting from packet path Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 094/206] iio: imu: lsm6dsx: Fix mount matrix retrieval Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 095/206] iio: core: Prevent invalid memory access when there is no parent Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 096/206] iio: light: bu27034: Fix scale format Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 097/206] interconnect: qcom: Add support for mask-based BCMs Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 098/206] interconnect: qcom: sa8775p: add enable_mask for bcm nodes Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 099/206] interconnect: qcom: sm8450: " Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 100/206] interconnect: qcom: sm8550: " Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 101/206] selftests: forwarding: tc_tunnel_key: Make filters more specific Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 102/206] selftests: forwarding: ethtool_mm: Skip when MAC Merge is not supported Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 103/206] selftests: forwarding: bridge_mdb_max: Check iproute2 version Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 104/206] selftests: forwarding: bridge_mdb: " Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 105/206] KVM: arm64: Fix hardware enable/disable flows for pKVM Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 106/206] dmaengine: xilinx: xdma: Fix typo Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 107/206] dmaengine: xilinx: xdma: Fix Judgment of the return value Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 108/206] selftests/bpf: fix a CI failure caused by vsock sockmap test Greg Kroah-Hartman
2023-08-13 21:17 ` [PATCH 6.4 109/206] selftests/rseq: Fix build with undefined __weak Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 110/206] selftests: forwarding: Add a helper to skip test when using veth pairs Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 111/206] selftests: forwarding: ethtool: Skip " Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 112/206] selftests: forwarding: ethtool_extended_state: " Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 113/206] selftests: forwarding: hw_stats_l3_gre: " Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 114/206] selftests: forwarding: Skip test when no interfaces are specified Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 115/206] selftests: forwarding: Switch off timeout Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 116/206] selftests: forwarding: tc_actions: Use ncat instead of nc Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 117/206] selftests: forwarding: tc_flower: Relax success criterion Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 118/206] selftests: forwarding: bridge_mdb_max: Fix failing test with old libnet Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 119/206] selftests: forwarding: bridge_mdb: " Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 120/206] selftests: forwarding: bridge_mdb: Make test more robust Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 121/206] net: core: remove unnecessary frame_sz check in bpf_xdp_adjust_tail() Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 122/206] bpf, sockmap: Fix map type error in sock_map_del_link Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 123/206] bpf, sockmap: Fix bug that strp_done cannot be called Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 124/206] hwmon: (aquacomputer_d5next) Add selective 200ms delay after sending ctrl report Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 125/206] mISDN: Update parameter type of dsp_cmx_send() Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 126/206] macsec: use DEV_STATS_INC() Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 127/206] mptcp: fix the incorrect judgment for msk->cb_flags Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 128/206] igc: Add lock to safeguard global Qbv variables Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 129/206] ionic: Add missing err handling for queue reconfig Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 130/206] net/packet: annotate data-races around tp->status Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 131/206] net/smc: Fix setsockopt and sysctl to specify same buffer size again Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 132/206] net/smc: Use correct buffer sizes when switching between TCP and SMC Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 133/206] PCI: move OF status = "disabled" detection to dev->match_driver Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 134/206] tcp: add missing family to tcp_set_ca_state() tracepoint Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 135/206] tunnels: fix kasan splat when generating ipv4 pmtu error Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 136/206] xsk: fix refcount underflow in error path Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 137/206] bonding: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 138/206] dccp: fix data-race around dp->dccps_mss_cache Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 139/206] drivers: net: prevent tun_build_skb() to exceed the packet size limit Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 140/206] drivers: vxlan: vnifilter: free percpu vni stats on error path Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 141/206] iavf: fix potential races for FDIR filters Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 142/206] IB/hfi1: Fix possible panic during hotplug remove Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 143/206] drm/amd/display: Dont show stack trace for missing eDP Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 144/206] drm/bridge: it6505: Check power state with it6505->powered in IRQ handler Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 145/206] drm/nouveau: remove unused tu102_gr_load() function Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 146/206] drm/rockchip: Dont spam logs in atomic check Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 147/206] wifi: brcm80211: handle params_v1 allocation failure Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 148/206] wifi: cfg80211: fix sband iftype data lookup for AP_VLAN Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 149/206] RDMA/umem: Set iova in ODP flow Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 150/206] RDMA/bnxt_re: Properly order ib_device_unalloc() to avoid UAF Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 151/206] RDMA/bnxt_re: Fix error handling in probe failure path Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 152/206] net: tls: avoid discarding data on record close Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 153/206] net: marvell: prestera: fix handling IPv4 routes with nhid Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 154/206] net: phy: at803x: remove set/get wol callbacks for AR8032 Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 155/206] net: dsa: ocelot: call dsa_tag_8021q_unregister() under rtnl_lock() on driver remove Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 156/206] net: hns3: refactor hclge_mac_link_status_wait for interface reuse Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 157/206] net: hns3: add wait until mac link down Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 158/206] net: hns3: fix deadlock issue when externel_lb and reset are executed together Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 159/206] net: enetc: reimplement RFS/RSS memory clearing as PCI quirk Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 160/206] nexthop: Fix infinite nexthop dump when using maximum nexthop ID Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 161/206] nexthop: Make nexthop bucket dump more efficient Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 162/206] nexthop: Fix infinite nexthop bucket dump when using maximum nexthop ID Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 163/206] net: hns3: fix strscpy causing content truncation issue Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 164/206] dmaengine: mcf-edma: Fix a potential un-allocated memory access Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 165/206] dmaengine: idxd: Clear PRS disable flag when disabling IDXD device Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 166/206] dmaengine: owl-dma: Modify mismatched function name Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 167/206] net/mlx5e: Take RTNL lock when needed before calling xdp_set_features() Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 168/206] net/mlx5e: TC, Fix internal port memory leak Greg Kroah-Hartman
2023-08-13 21:18 ` [PATCH 6.4 169/206] net/mlx5: DR, Fix wrong allocation of modify hdr pattern Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 170/206] net/mlx5: Allow 0 for total host VFs Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 171/206] net/mlx5e: Unoffload post act rule when handling FIB events Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 172/206] net/mlx5: LAG, Check correct bucket when modifying LAG Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 173/206] net/mlx5: Skip clock update work when device is in error state Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 174/206] net/mlx5: Reload auxiliary devices in pci error handlers Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 175/206] ibmvnic: Enforce stronger sanity checks on login response Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 176/206] ibmvnic: Unmap DMA login rsp buffer on send login fail Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 177/206] ibmvnic: Handle DMA unmapping of login buffs in release functions Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 178/206] ibmvnic: Do partial reset on login failure Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 179/206] ibmvnic: Ensure login failure recovery is safe from other resets Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 180/206] gpio: ws16c48: Fix off-by-one error in WS16C48 resource region extent Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 181/206] gpio: sim: mark the GPIO chip as a one that can sleep Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 182/206] btrfs: wait for actual caching progress during allocation Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 183/206] btrfs: dont stop integrity writeback too early Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 184/206] btrfs: dont wait for writeback on clean pages in extent_write_cache_pages Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 185/206] btrfs: properly clear end of the unreserved range in cow_file_range Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 186/206] btrfs: exit gracefully if reloc roots dont match Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 187/206] btrfs: reject invalid reloc tree root keys with stack dump Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 188/206] btrfs: set cache_block_group_error if we find an error Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 189/206] scsi: core: Fix legacy /proc parsing buffer overflow Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 190/206] scsi: storvsc: Fix handling of virtual Fibre Channel timeouts Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 191/206] scsi: ufs: renesas: Fix private allocation Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 192/206] scsi: 53c700: Check that command slot is not NULL Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 193/206] scsi: snic: Fix possible memory leak if device_add() fails Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 194/206] scsi: core: " Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 195/206] scsi: fnic: Replace return codes in fnic_clean_pending_aborts() Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 196/206] scsi: qedi: Fix firmware halt over suspend and resume Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 197/206] scsi: qedf: " Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 198/206] platform/x86: msi-ec: Fix the build Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 199/206] platform/x86: lenovo-ymc: Only bind on machines with a convertible DMI chassis-type Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 200/206] platform: mellanox: Change register offset addresses Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 201/206] platform: mellanox: mlx-platform: Fix signals polarity and latch mask Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 202/206] platform: mellanox: mlx-platform: Modify graceful shutdown callback and power down mask Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 203/206] platform: mellanox: Fix order in exit flow Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 204/206] platform/x86: serial-multi-instantiate: Auto detect IRQ resource for CSC3551 Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 205/206] ACPI: scan: Create platform device for CS35L56 Greg Kroah-Hartman
2023-08-13 21:19 ` [PATCH 6.4 206/206] alpha: remove __init annotation from exported page_is_ram() Greg Kroah-Hartman
2023-08-14  5:32 ` [PATCH 6.4 000/206] 6.4.11-rc1 review Bagas Sanjaya
2023-08-14 13:00 ` Conor Dooley
2023-08-14 14:48 ` Thierry Reding
2023-08-14 17:36 ` SeongJae Park
2023-08-14 18:12 ` Daniel Díaz
2023-08-14 18:27 ` Guenter Roeck
2023-08-14 21:27 ` Justin Forbes
2023-08-15  0:28 ` Ron Economos
2023-08-15  0:43 ` Shuah Khan
2023-08-15 17:08 ` Allen Pais
2023-08-15 17:38 ` Florian Fainelli
2023-08-16 22:29 ` Joel Fernandes

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=20230813211727.677328785@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=pablo@netfilter.org \
    --cc=patches@lists.linux.dev \
    --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).