[PATCH] NVMe: do not touch sq door bell if nvmeq has been suspended

Sagi Grimberg sagig at dev.mellanox.co.il
Tue Feb 2 09:20:01 PST 2016


> We free the transfer buffers when a command is cancelled. The controller,
> however, may still own the command and may try to write to them. We
> have to fence the controller off from being able to do that, so we can't
> cancel inflight commands while the PCI device is still bus master enabled.
>
> In a perfect world, we could trust in disabling with NVMe registers,
> but sometimes we can't rely on that.

OK, I wasn't aware that we cannot rely on that.

So it looks like we cannot change the ordering. So this leaves us with
the need to guarantee that no queue_rq is inflight before we unmap.



More information about the Linux-nvme mailing list