mirror_ubuntu-kernels/drivers/nvme/host
Sagi Grimberg 4af7f7ff92 nvme-rdma: don't complete requests before a send work request has completed
In order to guarantee that the HCA will never get an access violation
(either from invalidated rkey or from iommu) when retrying a send
operation we must complete a request only when both send completion and
the nvme cqe has arrived. We need to set the send/recv completions flags
atomically because we might have more than a single context accessing the
request concurrently (one is cq irq-poll context and the other is
user-polling used in IOCB_HIPRI).

Only then we are safe to invalidate the rkey (if needed), unmap the host
buffers, and complete the IO.

Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2017-11-26 15:33:32 +01:00
..
core.c nvme: Suppress static analyis warning 2017-11-20 08:38:11 +01:00
fabrics.c nvme: track subsystems 2017-11-10 19:53:25 -07:00
fabrics.h nvme-fabrics: introduce init command check for a queue that is not alive 2017-11-20 08:28:31 +01:00
fc.c nvme-fc: don't use bit masks for set/test_bit() numbers 2017-11-24 10:12:33 -07:00
Kconfig nvme: implement multipath access to nvme subsystems 2017-11-10 19:53:25 -07:00
lightnvm.c nvme: track shared namespaces 2017-11-10 19:53:25 -07:00
Makefile Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
multipath.c nvme: fix spelling mistake: "requeing" -> "requeuing" 2017-11-20 08:38:10 +01:00
nvme.h nvme-pci: add quirk for delay before CHK RDY for WDC SN200 2017-11-23 09:12:08 +01:00
pci.c nvme-pci: add quirk for delay before CHK RDY for WDC SN200 2017-11-23 09:12:08 +01:00
rdma.c nvme-rdma: don't complete requests before a send work request has completed 2017-11-26 15:33:32 +01:00