Cong Wang
db4192a754
tcp: read multiple skbs in tcp_read_skb()
...
Before we switched to ->read_skb(), ->read_sock() was passed with
desc.count=1, which technically indicates we only read one skb per
->sk_data_ready() call. However, for TCP, this is not true.
TCP at least has sk_rcvlowat which intentionally holds skb's in
receive queue until this watermark is reached. This means when
->sk_data_ready() is invoked there could be multiple skb's in the
queue, therefore we have to read multiple skbs in tcp_read_skb()
instead of one.
Fixes: 965b57b469a5 ("net: Introduce a new proto_ops ->read_skb()")
Reported-by: Peilin Ye <peilin.ye@bytedance.com>
Cc: John Fastabend <john.fastabend@gmail.com>
Cc: Jakub Sitnicki <jakub@cloudflare.com>
Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: Cong Wang <cong.wang@bytedance.com>
Link: https://lore.kernel.org/r/20220912173553.235838-1-xiyou.wangcong@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2022-09-20 14:47:21 +02:00
..
2020-08-10 12:06:44 -07:00
2022-07-21 13:03:39 -07:00
2022-07-21 13:03:39 -07:00
2022-07-12 12:58:53 +02:00
2022-07-15 18:55:49 -07:00
2022-07-21 20:59:42 -07:00
2022-07-08 12:10:33 +01:00
2022-04-22 13:06:03 +01:00
2022-08-24 13:46:58 +01:00
2022-03-07 13:14:04 +01:00
2022-07-21 13:03:39 -07:00
2022-08-31 19:50:36 -07:00
2022-02-17 11:44:20 -08:00
2021-09-28 17:32:56 -07:00
2022-04-30 15:12:58 +01:00
2022-07-21 13:03:39 -07:00
2022-07-25 12:42:10 +01:00
2022-04-12 14:56:33 -07:00
2021-05-17 15:29:35 -07:00
2021-11-24 17:21:42 -08:00
2022-07-15 11:49:55 +01:00
2022-07-18 12:21:54 +01:00
2022-07-18 12:21:54 +01:00
2022-05-12 16:52:18 -07:00
2022-04-30 15:12:58 +01:00
2022-06-16 11:07:59 -07:00
2022-07-13 12:56:49 +01:00
2022-07-08 12:10:33 +01:00
2022-07-15 11:49:55 +01:00
2022-03-03 14:38:48 +00:00
2022-08-18 21:18:28 +02:00
2022-07-15 18:50:35 -07:00
2022-01-29 17:53:07 +00:00
2022-08-24 13:46:57 +01:00
2022-08-24 13:46:57 +01:00
2022-06-27 11:50:30 +01:00
2022-08-18 21:18:28 +02:00
2021-10-13 09:41:37 -07:00
2021-06-30 15:51:09 -07:00
2022-08-04 11:31:20 -07:00
2021-10-13 09:41:37 -07:00
2022-06-24 11:34:38 +01:00
2022-06-27 12:01:01 +01:00
2022-04-12 14:56:33 -07:00
2021-02-26 12:28:03 -08:00
2020-11-16 08:08:54 -08:00
2022-05-16 13:03:29 +02:00
2019-05-21 10:50:45 +02:00
2022-07-13 12:56:50 +01:00
2022-06-23 12:33:24 -07:00
2022-07-15 11:49:55 +01:00
2021-05-17 15:29:35 -07:00
2022-06-21 11:38:29 +02:00
2022-06-24 22:48:33 -07:00
2022-07-25 13:25:39 +01:00
2022-07-20 10:14:49 +01:00
2022-07-20 10:14:49 +01:00
2022-07-21 20:59:42 -07:00
2022-04-06 12:05:41 -07:00
2022-06-23 12:33:24 -07:00
2022-04-06 12:05:41 -07:00
2022-04-07 20:33:15 -07:00
2022-07-21 20:59:42 -07:00
2022-07-21 20:59:42 -07:00
2018-10-10 22:26:00 -07:00
2020-02-27 18:50:19 -08:00
2022-07-18 12:21:54 +01:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2022-09-06 11:06:31 +02:00
2022-08-31 19:56:48 -07:00
2022-04-06 12:05:41 -07:00
2022-07-22 12:06:17 +01:00
2022-07-20 10:14:50 +01:00
2022-04-06 12:05:41 -07:00
2021-11-16 13:16:54 +00:00
2022-08-24 13:46:57 +01:00
2022-04-28 13:02:01 -07:00
2022-07-20 10:14:50 +01:00
2022-04-06 12:05:41 -07:00
2022-07-21 13:03:39 -07:00
2020-03-09 22:34:58 +01:00
2022-04-06 12:05:41 -07:00
2017-11-02 11:10:55 +01:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2022-04-06 12:05:41 -07:00
2022-09-20 14:47:21 +02:00
2021-05-17 15:29:35 -07:00
2022-04-12 15:00:25 +02:00
2021-07-13 09:28:29 -07:00
2022-04-12 15:00:25 +02:00
2021-11-24 17:21:42 -08:00
2022-09-01 11:42:12 +01:00
2022-02-23 12:35:00 +00:00
2020-07-10 13:54:00 -07:00
2022-09-01 11:42:12 +01:00
2022-06-10 16:21:26 -07:00
2020-05-06 09:40:08 +02:00
2020-05-11 15:12:27 +02:00
2022-06-09 21:52:55 -07:00
2022-06-08 10:10:13 -07:00
2020-05-06 09:40:08 +02:00
2021-09-23 10:10:00 +02:00