[PATCH v1 net-next] net: Shrink skc_reuse:4 to 2 bits.

From
Kuniyuki Iwashima <kuniyu@google.com>
Date
2026-11-03 04:42:16
skc_reuse now consumes 4 bits.

However, SK_NO_REUSE, SK_CAN_REUSE, and SK_FORCE_REUSE
are mutually exclusive and fit in 2 bits.

Let's reclaim 2 bits.

Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
---
This is to give a bit to SO_NO_RFS instead of sk_flags.
https://lore.kernel.org/netdev/20261031113330.45704-2-vitaly.zuevsky@gcore.com/ (local)
---
 include/net/sock.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/net/sock.h b/include/net/sock.h
index 173b37b2b8bb..4c831eec2045 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -125,6 +125,7 @@ typedef __u64 __bitwise __addrpair;
  *	@skc_net_refcnt: socket is using net ref counting
  *	@skc_bypass_prot_mem: bypass the per-protocol memory accounting for skb
  *	@skc_bound_dev_if: bound device index if != 0
+ *	@skc_unused: unused bits
  *	@skc_bind_node: bind hash linkage for various protocol lookup tables
  *	@skc_portaddr_node: second hash linkage for UDP
  *	@skc_prot: protocol handlers inside a network family
@@ -176,11 +177,12 @@ struct sock_common {
 
 	unsigned short		skc_family;
 	volatile unsigned char	skc_state;
-	unsigned char		skc_reuse:4;
+	unsigned char		skc_reuse:2;
 	unsigned char		skc_reuseport:1;
 	unsigned char		skc_ipv6only:1;
 	unsigned char		skc_net_refcnt:1;
 	unsigned char		skc_bypass_prot_mem:1;
+	unsigned char		skc_unused:2;
 	int			skc_bound_dev_if;
 	union {
 		struct hlist_node	skc_bind_node;
-- 
2.56.0.385.gac671c819a-goog
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help