Commit 63fab61
Herton R. Krzesinski
Merge: RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall.
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/1611
Bugzilla: https://bugzilla.redhat.com/2131780
commit 7542098
Author: Bernard Metzler <bmt@zurich.ibm.com>
Date: Tue Sep 20 10:12:02 2022 +0200
RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall.
For header and trailer/padding processing, siw did not consume new
skb data until minimum amount present to fill current header or trailer
structure, including potential payload padding. Not consuming any
data during upcall may cause a receive stall, since tcp_read_sock()
is not upcalling again if no new data arrive.
A NFSoRDMA client got stuck at RDMA Write reception of unaligned
payload, if the current skb did contain only the expected 3 padding
bytes, but not the 4 bytes CRC trailer. Expecting 4 more bytes already
arrived in another skb, and not consuming those 3 bytes in the current
upcall left the Write incomplete, waiting for the CRC forever.
Fixes: 8b6a361 ("rdma/siw: receive path")
Reported-by: Olga Kornievskaia <kolga@netapp.com>
Tested-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Bernard Metzler <bmt@zurich.ibm.com>
Link: https://lore.kernel.org/r/20220920081202.223629-1-bmt@zurich.ibm.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Kamal Heib <kheib@redhat.com>
Approved-by: José Ignacio Tornos Martínez <jtornosm@redhat.com>
Approved-by: Íñigo Huguet <ihuguet@redhat.com>
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>1 file changed
+15
-12
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
961 | 961 | | |
962 | 962 | | |
963 | 963 | | |
| 964 | + | |
964 | 965 | | |
965 | 966 | | |
966 | 967 | | |
967 | 968 | | |
968 | 969 | | |
969 | 970 | | |
970 | | - | |
971 | | - | |
972 | | - | |
973 | | - | |
| 971 | + | |
974 | 972 | | |
975 | | - | |
976 | | - | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
977 | 977 | | |
978 | | - | |
979 | | - | |
980 | | - | |
| 978 | + | |
| 979 | + | |
981 | 980 | | |
982 | 981 | | |
983 | 982 | | |
984 | 983 | | |
| 984 | + | |
| 985 | + | |
985 | 986 | | |
986 | 987 | | |
987 | 988 | | |
| |||
1083 | 1084 | | |
1084 | 1085 | | |
1085 | 1086 | | |
1086 | | - | |
| 1087 | + | |
1087 | 1088 | | |
1088 | | - | |
1089 | | - | |
| 1089 | + | |
1090 | 1090 | | |
1091 | 1091 | | |
1092 | 1092 | | |
| |||
1096 | 1096 | | |
1097 | 1097 | | |
1098 | 1098 | | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
1099 | 1102 | | |
1100 | 1103 | | |
1101 | 1104 | | |
| |||
0 commit comments