aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2022-03-10 14:25:53 +0100
committerHannes Reinecke <hare@suse.de>2022-03-10 14:25:53 +0100
commitd2416ecdb6b03fc2e4aa40b20cdf919322713224 (patch)
tree9fb12466a57c89984a58700466b129546a1deed2
parent921f6399790df513118d6c1aa829d4e9fab5131c (diff)
downloadscsi-devel-tls-upcall.v4.tar.gz
nvme-tcp: use hash_iov_iter() to calculate the data digesttls-upcall.v4
If data digest has been enabled we need to calculate the hash on the received data. As recvmsg() has already filled out the iov_iter we just need to call hash_iov_iter() to calculate the hash. Signed-off-by: Hannes Reinecke <hare@suse.de>
-rw-r--r--drivers/nvme/host/tcp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
index 19d8a74071da98..1ba03654011bfc 100644
--- a/drivers/nvme/host/tcp.c
+++ b/drivers/nvme/host/tcp.c
@@ -956,6 +956,9 @@ static int nvme_tcp_recvmsg_data(struct nvme_tcp_queue *queue)
if (WARN_ON(queue->data_digest))
ret = -EOPNOTSUPP;
+ if (ret > 0 && queue->data_digest)
+ ret = hash_iov_iter(queue->rcv_hash, &req->iter);
+
if (ret <= 0) {
dev_err(queue->ctrl->ctrl.device,
"queue %d failed to receive request %#x data",