mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 10:43:43 +00:00
ipv6: raw: check sk->sk_rcvbuf earlier
There is no point cloning an skb and having to free the clone if the receive queue of the raw socket is full. Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Link: https://lore.kernel.org/r/20240307162943.2523817-1-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
5d9b7cb383
commit
026763ece8
@ -160,6 +160,13 @@ static bool ipv6_raw_deliver(struct sk_buff *skb, int nexthdr)
|
||||
if (!raw_v6_match(net, sk, nexthdr, daddr, saddr,
|
||||
inet6_iif(skb), inet6_sdif(skb)))
|
||||
continue;
|
||||
|
||||
if (atomic_read(&sk->sk_rmem_alloc) >=
|
||||
READ_ONCE(sk->sk_rcvbuf)) {
|
||||
atomic_inc(&sk->sk_drops);
|
||||
continue;
|
||||
}
|
||||
|
||||
delivered = true;
|
||||
switch (nexthdr) {
|
||||
case IPPROTO_ICMPV6:
|
||||
|
Loading…
Reference in New Issue
Block a user