From: Jakub Kicinski <kuba@kernel.org>
Date: Thu, 8 Feb 2024 23:20:37 +0000 (-0800)
Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3be042cf46feeedf664152d063376b5c17026d1d;p=linux.git

Merge git://git./linux/kernel/git/netdev/net

Cross-merge networking fixes after downstream PR.

No conflicts.

Adjacent changes:

drivers/net/ethernet/stmicro/stmmac/common.h
  38cc3c6dcc09 ("net: stmmac: protect updates of 64-bit statistics counters")
  fd5a6a71313e ("net: stmmac: est: Per Tx-queue error count for HLBF")
  c5c3e1bfc9e0 ("net: stmmac: Offload queueMaxSDU from tc-taprio")

drivers/net/wireless/microchip/wilc1000/netdev.c
  c9013880284d ("wifi: fill in MODULE_DESCRIPTION()s for wilc1000")
  328efda22af8 ("wifi: wilc1000: do not realloc workqueue everytime an interface is added")

net/unix/garbage.c
  11498715f266 ("af_unix: Remove io_uring code for GC.")
  1279f9d9dec2 ("af_unix: Call kfree_skb() for dead unix_(sk)->oob_skb in GC.")

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---

3be042cf46feeedf664152d063376b5c17026d1d
diff --cc net/unix/garbage.c
index 9b8473dd79a4b,8f63f0b4bf012..3e4b986de94b9
--- a/net/unix/garbage.c
+++ b/net/unix/garbage.c
@@@ -339,10 -301,40 +339,21 @@@ static void __unix_gc(struct work_struc
  	/* Here we are. Hitlist is filled. Die. */
  	__skb_queue_purge(&hitlist);
  
+ #if IS_ENABLED(CONFIG_AF_UNIX_OOB)
+ 	list_for_each_entry_safe(u, next, &gc_candidates, link) {
+ 		struct sk_buff *skb = u->oob_skb;
+ 
+ 		if (skb) {
+ 			u->oob_skb = NULL;
+ 			kfree_skb(skb);
+ 		}
+ 	}
+ #endif
+ 
  	spin_lock(&unix_gc_lock);
  
 -	/* There could be io_uring registered files, just push them back to
 -	 * the inflight list
 -	 */
 -	list_for_each_entry_safe(u, next, &gc_candidates, link)
 -		list_move_tail(&u->link, &gc_inflight_list);
 -
  	/* All candidates should have been detached by now. */
 -	BUG_ON(!list_empty(&gc_candidates));
 +	WARN_ON_ONCE(!list_empty(&gc_candidates));
  
  	/* Paired with READ_ONCE() in wait_for_unix_gc(). */
  	WRITE_ONCE(gc_in_progress, false);