NVMe: Fix device probe waiting on kthread
authorKeith Busch <keith.busch@intel.com>
Mon, 22 Sep 2014 19:46:19 +0000 (13:46 -0600)
committerJens Axboe <axboe@fb.com>
Tue, 4 Nov 2014 20:17:10 +0000 (13:17 -0700)
If we ever do parallel device probing, we need to wake up all processes
waiting for nvme kthread to start, not just one. This is currently
serialized so the bug is not reachable today, but fixing this anyway in
the hopes we implement parallel or asynchronous probe in the future.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/nvme-core.c

index 70be3a151eb74fb2ec6dd3f777944c5968f7d247..0196fce0ddf52f8f20f7a278cf93d482071110da 100644 (file)
@@ -2787,7 +2787,7 @@ static int nvme_dev_start(struct nvme_dev *dev)
 
        if (start_thread) {
                nvme_thread = kthread_run(nvme_kthread, NULL, "nvme");
-               wake_up(&nvme_kthread_wait);
+               wake_up_all(&nvme_kthread_wait);
        } else
                wait_event_killable(nvme_kthread_wait, nvme_thread);