Patch "nvme/core: Fix race kicking freed request_queue" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
nvme/core: Fix race kicking freed request_queue
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
nvme-core-fix-race-kicking-freed-request_queue.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
f33447b90e96076483525b21cc4e0a8977cdd07cMon Sep 17 00:00:00 2001
From: Keith Busch <[email protected]>
Date: Fri, 10 Feb 2017 18:15:51 -0500
Subject: nvme/core: Fix race kicking freed request_queue
From: Keith Busch <[email protected]>
commit f33447b90e96076483525b21cc4e0a8977cdd07c upstream.
If a namespace has already been marked dead, we don't want to kick the request_queue again since we may have just freed it from another thread.
--- drivers/nvme/host/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/nvme/host/core.c +3 -3
@@ -2057,9 +2057,9 @@ void nvme_kill_queues(struct nvme_ctrl ** Revalidating a dead namespace sets capacity to 0. This will * end buffered writers dirtying pages that can't be synced. */ -if (ns->disk && !test_and_set_bit (NVME_NS_DEAD , &ns->flags)) -revalidate_disk (ns->disk); - +if (!ns->disk ||test_and_set_bit (NVME_NS_DEAD , &ns->flags)) +continue ; +revalidate_disk (ns->disk);blk_set_queue_dying (ns->queue);blk_mq_abort_requeue_list (ns->queue);blk_mq_start_stopped_hw_queues (ns->queue, true);
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/nvme-pci-disable-on-removal-when-disconnected.patch queue-4.9/nvme-core-fix-race-kicking-freed-request_queue.patch