Commit 6ddb811a authored by Eric Dumazet's avatar Eric Dumazet Committed by Jakub Kicinski
Browse files

net: add SK_WMEM_ALLOC_BIAS constant



sk->sk_wmem_alloc is initialized to 1, and sk_wmem_alloc_get()
takes care of this initial value.

Add SK_WMEM_ALLOC_BIAS define to not spread this magic value.

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Reviewed-by: default avatarNeal Cardwell <ncardwell@google.com>
Reviewed-by: default avatarKuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20251013152234.842065-2-edumazet@google.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 1c51450f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2303,6 +2303,7 @@ static inline int skb_copy_to_page_nocache(struct sock *sk, struct iov_iter *fro
	return 0;
}

#define SK_WMEM_ALLOC_BIAS 1
/**
 * sk_wmem_alloc_get - returns write allocations
 * @sk: socket
@@ -2311,7 +2312,7 @@ static inline int skb_copy_to_page_nocache(struct sock *sk, struct iov_iter *fro
 */
static inline int sk_wmem_alloc_get(const struct sock *sk)
{
	return refcount_read(&sk->sk_wmem_alloc) - 1;
	return refcount_read(&sk->sk_wmem_alloc) - SK_WMEM_ALLOC_BIAS;
}

/**
+1 −1
Original line number Diff line number Diff line
@@ -157,7 +157,7 @@ int vcc_create(struct net *net, struct socket *sock, int protocol, int family, i
	memset(&vcc->local, 0, sizeof(struct sockaddr_atmsvc));
	memset(&vcc->remote, 0, sizeof(struct sockaddr_atmsvc));
	vcc->qos.txtp.max_sdu = 1 << 16; /* for meta VCs */
	refcount_set(&sk->sk_wmem_alloc, 1);
	refcount_set(&sk->sk_wmem_alloc, SK_WMEM_ALLOC_BIAS);
	atomic_set(&sk->sk_rmem_alloc, 0);
	vcc->push = NULL;
	vcc->pop = NULL;
+2 −3
Original line number Diff line number Diff line
@@ -2313,7 +2313,7 @@ struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
		}

		sock_net_set(sk, net);
		refcount_set(&sk->sk_wmem_alloc, 1);
		refcount_set(&sk->sk_wmem_alloc, SK_WMEM_ALLOC_BIAS);

		mem_cgroup_sk_alloc(sk);
		cgroup_sk_alloc(&sk->sk_cgrp_data);
@@ -2494,8 +2494,7 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)

	atomic_set(&newsk->sk_rmem_alloc, 0);

	/* sk_wmem_alloc set to one (see sk_free() and sock_wfree()) */
	refcount_set(&newsk->sk_wmem_alloc, 1);
	refcount_set(&newsk->sk_wmem_alloc, SK_WMEM_ALLOC_BIAS);

	atomic_set(&newsk->sk_omem_alloc, 0);
	sk_init_common(newsk);