On Fri, 2019-03-08 at 10:40 -0700, Keith Busch wrote: +AD4 End the entered requests on a quieced queue directly rather than flush +AD4 them through the low level driver's queue+AF8-rq(). +AD4 +AD4 Signed-off-by: Keith Busch +ADw-keith.busch+AEA-intel.com+AD4 +AD4 --- +AD4 drivers/nvme/host/core.c +AHw 10 +-+-+-+-+-+-+-+--- +AD4 1 file changed, 8 insertions(+-), 2 deletions(-) +AD4 +AD4 diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c +AD4 index cc5d9a83d5af..7095406bb293 100644 +AD4 --- a/drivers/nvme/host/core.c +AD4 +-+-+- b/drivers/nvme/host/core.c +AD4 +AEAAQA -94,6 +-94,13 +AEAAQA static void nvme+AF8-put+AF8-subsystem(struct nvme+AF8-subsystem +ACo-subsys)+ADs +AD4 static void nvme+AF8-remove+AF8-invalid+AF8-namespaces(struct nvme+AF8-ctrl +ACo-ctrl, +AD4 unsigned nsid)+ADs +AD4 +AD4 +-static bool nvme+AF8-fail+AF8-request(struct blk+AF8-mq+AF8-hw+AF8-ctx +ACo-hctx, struct request +ACo-req, +AD4 +- void +ACo-data, bool reserved) +AD4 +-+AHs +AD4 +- blk+AF8-mq+AF8-end+AF8-request(req, BLK+AF8-STS+AF8-IOERR)+ADs +AD4 +- return true+ADs +AD4 +-+AH0 Calling blk+AF8-mq+AF8-end+AF8-request() from outside the .queue+AF8-rq() or .complete() callback functions is wrong. Did you perhaps want to call blk+AF8-mq+AF8-complete+AF8-request()? Bart.