diff options
author | 2021-10-26 19:01:55 +0530 | |
---|---|---|
committer | 2021-10-27 07:58:26 +0200 | |
commit | ce7723e9cdae4eb3030da082876580f4b2dc0861 (patch) | |
tree | a5e1471acc87c1d2c157b04d2efe2658eb62a3f8 /include/linux/fpga/fpga-mgr.h | |
parent | nvme-tcp: fix H2CData PDU send accounting (again) (diff) | |
download | linux-dev-ce7723e9cdae4eb3030da082876580f4b2dc0861.tar.xz linux-dev-ce7723e9cdae4eb3030da082876580f4b2dc0861.zip |
nvme-tcp: fix possible req->offset corruption
With commit db5ad6b7f8cd ("nvme-tcp: try to send request in queue_rq
context") r2t and response PDU can get processed while send function
is executing.
Current data digest send code uses req->offset after kernel_sendmsg(),
this creates a race condition where req->offset gets reset before it
is used in send function.
This can happen in two cases -
1. Target sends r2t PDU which resets req->offset.
2. Target send response PDU which completes the req and then req is
used for a new command, nvme_tcp_setup_cmd_pdu() resets req->offset.
Fix this by storing req->offset in a local variable and using
this local variable after kernel_sendmsg().
Fixes: db5ad6b7f8cd ("nvme-tcp: try to send request in queue_rq context")
Signed-off-by: Varun Prakash <varun@chelsio.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'include/linux/fpga/fpga-mgr.h')
0 files changed, 0 insertions, 0 deletions