Files
linux/include/net
Paolo Abeni 9adc89af72 net: let skb_orphan_partial wake-up waiters.
Currently the mentioned helper can end-up freeing the socket wmem
without waking-up any processes waiting for more write memory.

If the partially orphaned skb is attached to an UDP (or raw) socket,
the lack of wake-up can hang the user-space.

Even for TCP sockets not calling the sk destructor could have bad
effects on TSQ.

Address the issue using skb_orphan to release the sk wmem before
setting the new sock_efree destructor. Additionally bundle the
whole ownership update in a new helper, so that later other
potential users could avoid duplicate code.

v1 -> v2:
 - use skb_orphan() instead of sort of open coding it (Eric)
 - provide an helper for the ownership change (Eric)

Fixes: f6ba8d33cf ("netem: fix skb_orphan_partial()")
Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-03-30 13:57:28 -07:00
..
2019-01-23 11:18:00 -08:00
2021-02-16 14:47:46 -08:00
2020-05-05 13:23:29 -07:00
2019-12-09 10:36:44 -08:00
2020-06-22 21:12:44 -07:00
2020-11-10 17:56:54 -08:00
2018-09-13 09:04:58 -07:00
2019-12-09 10:36:44 -08:00
2020-03-04 13:25:55 -08:00
2018-05-16 07:23:35 +02:00
2019-04-22 21:47:25 -07:00
2019-10-05 16:29:00 -07:00
2020-06-18 20:46:23 -07:00
2021-02-04 18:37:57 -08:00
2019-12-09 10:28:43 -08:00