aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorBernard Metzler <bmt@zurich.ibm.com>2022-09-20 10:12:02 +0200
committerLeon Romanovsky <leon@kernel.org>2022-09-20 21:21:18 +0300
commit754209850df8367c954ac1de7671c7430b1f342c (patch)
treed464c87a6dbe50bac753de8151e7f8cafadbc95f /kernel
parentIB/hfi1: remove rc_only_opcode and uc_only_opcode declarations (diff)
downloadlinux-dev-754209850df8367c954ac1de7671c7430b1f342c.tar.xz
linux-dev-754209850df8367c954ac1de7671c7430b1f342c.zip
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: 8b6a361b8c48 ("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>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions