aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorYehyeong Lee <yhlee@isslab.korea.ac.kr>2026-08-23 16:46:16 +0900
committerKeith Busch <kbusch@kernel.org>2026-09-03 14:15:10 -0700
commitdf7197ebc7280be9f34dfee9757a933ef0b18741 (patch)
tree89c5914d07795e3623a6e7f81a87862a9617be61
parentnvmet: print namespace IDs as unsigned 32bit value (diff)
nvme-tcp: return -EPROTO for a C2HData on a write
The direction check in nvme_tcp_handle_c2h_data() returns -EIO. A C2HData PDU naming a command that did not ask for data is a protocol violation, and the check that rejects a PDU on those grounds a few lines below it - SUCCESS set without LAST - returns -EPROTO. No caller distinguishes the two, so this changes the error code alone. Suggested-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Yehyeong Lee <yhlee@isslab.korea.ac.kr> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Keith Busch <kbusch@kernel.org>
-rw-r--r--drivers/nvme/host/tcp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
index 643fc503a477..2a15c6143f2a 100644
--- a/drivers/nvme/host/tcp.c
+++ b/drivers/nvme/host/tcp.c
@@ -688,7 +688,7 @@ static int nvme_tcp_handle_c2h_data(struct nvme_tcp_queue *queue,
dev_err(queue->ctrl->ctrl.device,
"queue %d tag %#x unexpected data for a write\n",
nvme_tcp_queue_id(queue), rq->tag);
- return -EIO;
+ return -EPROTO;
}
req = blk_mq_rq_to_pdu(rq);