mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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: Eric Dumazet <edumazet@google.com> Reviewed-by: Neal Cardwell <ncardwell@google.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com> Link: https://patch.msgid.link/20251013152234.842065-2-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
1c51450f1a
commit
6ddb811a57
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user