Files
linux/include/net
Jakub Kicinski 4cbc325ed6 tls: rx: allow only one reader at a time
recvmsg() in TLS gets data from the skb list (rx_list) or fresh
skbs we read from TCP via strparser. The former holds skbs which were
already decrypted for peek or decrypted and partially consumed.

tls_wait_data() only notices appearance of fresh skbs coming out
of TCP (or psock). It is possible, if there is a concurrent call
to peek() and recv() that the peek() will move the data from input
to rx_list without recv() noticing. recv() will then read data out
of order or never wake up.

This is not a practical use case/concern, but it makes the self
tests less reliable. This patch solves the problem by allowing
only one reader in.

Because having multiple processes calling read()/peek() is not
normal avoid adding a lock and try to fast-path the single reader
case.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-07-18 11:24:10 +01:00
..
2022-01-10 10:00:09 +09:00
2021-07-01 13:19:48 -07:00
2022-06-22 12:59:43 +01:00
2022-05-25 21:36:16 -07:00
2022-06-02 10:37:57 +02:00
2021-10-13 09:40:46 -07:00
2021-10-13 09:40:46 -07:00
2020-05-05 13:23:29 -07:00
2021-12-16 07:18:35 -08:00
2019-12-09 10:36:44 -08:00
2020-06-22 21:12:44 -07:00
2021-10-15 11:33:08 +01:00
2021-11-19 20:09:55 -08:00
2021-10-13 09:40:46 -07:00
2021-07-27 13:05:56 +01:00
2019-12-09 10:36:44 -08:00
2022-05-11 12:43:10 +01:00
2020-03-04 13:25:55 -08:00
2021-05-17 15:29:35 -07:00
2022-06-19 10:00:02 +01:00
2021-10-13 09:40:45 -07:00
2019-10-05 16:29:00 -07:00
2021-08-03 13:05:26 +01:00
2022-07-18 11:24:10 +01:00
2020-06-18 20:46:23 -07:00
2019-12-09 10:28:43 -08:00