]> git.baikalelectronics.ru Git - kernel.git/commit
tls: rx: decrypt into a fresh skb
authorJakub Kicinski <kuba@kernel.org>
Fri, 15 Jul 2022 05:22:35 +0000 (22:22 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 18 Jul 2022 10:24:11 +0000 (11:24 +0100)
commit644458add47443574b0b0a08c3f075ac96daa2c2
tree9f364a6ce7ecb7b5b94daba90002b6cfee8dc4c8
parent7dc28c23ca74027f0121ce27b5d0805e0ac8c3a9
tls: rx: decrypt into a fresh skb

We currently CoW Rx skbs whenever we can't decrypt to a user
space buffer. The skbs can be enormous (64kB) and CoW does
a linear alloc which has a strong chance of failing under
memory pressure. Or even without, skb_cow_data() assumes
GFP_ATOMIC.

Allocate a new frag'd skb and decrypt into it. We finally
take advantage of the decrypted skb getting returned via
darg.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tls/tls.h
net/tls/tls_sw.c