]> git.baikalelectronics.ru Git - kernel.git/commit
net: really orphan skbs tied to closing sk
authorPaolo Abeni <pabeni@redhat.com>
Tue, 11 May 2021 08:35:21 +0000 (10:35 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 May 2021 20:48:58 +0000 (13:48 -0700)
commit25f10c028521ae6ddd5cd367d3bf9d343b4a8ee8
treed442e60d9f155abed803536c17afe7f8a0e9b930
parent6392ca1706b057cd005b0eeb290b0a8582b56223
net: really orphan skbs tied to closing sk

If the owing socket is shutting down - e.g. the sock reference
count already dropped to 0 and only sk_wmem_alloc is keeping
the sock alive, skb_orphan_partial() becomes a no-op.

When forwarding packets over veth with GRO enabled, the above
causes refcount errors.

This change addresses the issue with a plain skb_orphan() call
in the critical scenario.

Fixes: ab2a16c6cefd ("net: let skb_orphan_partial wake-up waiters.")
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sock.h
net/core/sock.c