nvmet-tcp: fix maxh2cdata icresp parameter
authorSagi Grimberg <sagi@grimberg.me>
Wed, 26 Feb 2020 00:42:27 +0000 (16:42 -0800)
committerKeith Busch <kbusch@kernel.org>
Wed, 25 Mar 2020 19:49:35 +0000 (04:49 +0900)
MAXH2CDATA is not zero based. Also no reason to limit ourselves to
1M transfers as we can do more easily. Make this an arbitrary limit
of 16M.

Reported-by: Wenhua Liu <liuw@vmware.com>
Cc: stable@vger.kernel.org # v5.0+
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/target/tcp.c

index cbff1038bdb32e63c893d2837ea858eb3834629d..1942c941c31c2822a67b36287ca549e521df1b46 100644 (file)
@@ -798,7 +798,7 @@ static int nvmet_tcp_handle_icreq(struct nvmet_tcp_queue *queue)
        icresp->hdr.pdo = 0;
        icresp->hdr.plen = cpu_to_le32(icresp->hdr.hlen);
        icresp->pfv = cpu_to_le16(NVME_TCP_PFV_1_0);
-       icresp->maxdata = cpu_to_le32(0xffff); /* FIXME: support r2t */
+       icresp->maxdata = cpu_to_le32(0x400000); /* 16M arbitrary limit */
        icresp->cpda = 0;
        if (queue->hdr_digest)
                icresp->digest |= NVME_TCP_HDR_DIGEST_ENABLE;