Hi Jens, This is hopefully the last version to fix nvme stopping blk-mq's CPU event from making forward progress. The solution requires a couple new blk-mq exports so the nvme driver can properly sync with queue states. Since this depends on the blk-mq parts, and if you approve of the proposal, I think it'd be easiest if you can take this directly into linux-block/for-linus. Otherwise, we can send you a pull request if you Ack the blk-mq parts. The difference from the previous patch is an update that Artur confirmed passes hibernate on a stacked request queue. Personally, I tested this for several hours with fio running buffered writes in the back-ground and rtcwake running suspend/resume at intervals. This succeeded with no fio errors. Keith Busch (3): blk-mq: Export blk_mq_freeze_queue_wait blk-mq: Provide queue freeze wait timeout nvme: Complete all stuck requests block/blk-mq.c | 12 +++++++++++- drivers/nvme/host/core.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ drivers/nvme/host/nvme.h | 4 ++++ drivers/nvme/host/pci.c | 33 ++++++++++++++++++++++++++++----- include/linux/blk-mq.h | 3 +++ 5 files changed, 93 insertions(+), 6 deletions(-) -- 2.5.5