linux/drivers/nvme/target
James Smart d082dc1562 nvmet-fc: fix target sgl list on large transfers
The existing code to carve up the sg list expected an sg element-per-page
which can be very incorrect with iommu's remapping multiple memory pages
to fewer bus addresses. To hit this error required a large io payload
(greater than 256k) and a system that maps on a per-page basis. It's
possible that large ios could get by fine if the system condensed the
sgl list into the first 64 elements.

This patch corrects the sg list handling by specifically walking the
sg list element by element and attempting to divide the transfer up
on a per-sg element boundary. While doing so, it still tries to keep
sequences under 256k, but will exceed that rule if a single sg element
is larger than 256k.

Fixes: 48fa362b6c ("nvmet-fc: simplify sg list handling")
Cc: <stable@vger.kernel.org> # 4.14
Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2018-07-24 13:44:09 +02:00
..
admin-cmd.c nvmet: free smart-log buffer after use 2018-06-11 16:18:05 +02:00
configfs.c nvmet: filter newlines from user input 2018-06-08 12:51:10 -06:00
core.c nvmet: reset keep alive timer in controller enable 2018-06-20 14:20:51 +02:00
discovery.c nvmet: remove duplicate NULL initialization for req->ns 2018-05-25 16:50:12 +02:00
fabrics-cmd.c nvmet: remove duplicate NULL initialization for req->ns 2018-05-25 16:50:12 +02:00
fc.c nvmet-fc: fix target sgl list on large transfers 2018-07-24 13:44:09 +02:00
fcloop.c Merge branch 'for-4.16/block' of git://git.kernel.dk/linux-block 2018-01-29 11:51:49 -08:00
io-cmd-bdev.c nvmet: add simple file backed ns support 2018-05-25 16:50:12 +02:00
io-cmd-file.c nvmet: fix error return code in nvmet_file_ns_enable() 2018-05-31 18:46:46 +02:00
Kconfig nvmet-rdma: depend on INFINIBAND_ADDR_TRANS 2018-04-27 11:15:43 -04:00
loop.c nvme-fabrics: refactor queue ready check 2018-06-15 11:21:00 +02:00
Makefile nvmet: add simple file backed ns support 2018-05-25 16:50:12 +02:00
nvmet.h nvmet: mask pending AENs 2018-06-01 14:37:35 +02:00
rdma.c nvmet: constify struct nvmet_fabrics_ops 2018-03-26 08:53:43 -06:00