nvme-tcp: fence TCP socket on receive error
authorChris Leech <cleech@redhat.com>
Tue, 21 Mar 2023 16:30:25 +0000 (09:30 -0700)
committerChristoph Hellwig <hch@lst.de>
Thu, 13 Apr 2023 06:55:05 +0000 (08:55 +0200)
commitaeacfcefa218f4ed11da478e9b7915a37d1afaff
treeb1a61cbfa402e121052872e729e305ca9bd6d5ac
parentc5a9abfad9fb010c39defeee0c939bfa9430a5a3
nvme-tcp: fence TCP socket on receive error

Ensure that no further socket reads occur after a receive processing
error, either from io_work being re-scheduled or nvme_tcp_poll.

Failing to do so can result in unrecognised PDU payloads or TCP stream
garbage being processed as a C2H data PDU, and potentially start copying
the payload to an invalid destination after looking up a request using a
bogus command id.

Signed-off-by: Chris Leech <cleech@redhat.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: John Meneghini <jmeneghi@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/tcp.c