summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorKeith Busch <keith.busch@intel.com>2014-06-11 19:51:35 +0200
committerMatthew Wilcox <matthew.r.wilcox@intel.com>2014-06-13 16:43:34 +0200
commitf3db22feb5de6b98b7bae924c2d4b6c8d65bedae (patch)
tree1a2fc6e5dd199f15280a40aae824ac41b72177b7 /include
parentNVMe: Rename io_timeout to nvme_io_timeout (diff)
downloadlinux-f3db22feb5de6b98b7bae924c2d4b6c8d65bedae.tar.xz
linux-f3db22feb5de6b98b7bae924c2d4b6c8d65bedae.zip
NVMe: Fix hot cpu notification dead lock
There is a potential dead lock if a cpu event occurs during nvme probe since it registered with hot cpu notification. This fixes the race by having the module register with notification outside of probe rather than have each device register. The actual work is done in a scheduled work queue instead of in the notifier since assigning IO queues has the potential to block if the driver creates additional queues. Signed-off-by: Keith Busch <keith.busch@intel.com> Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/nvme.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index 8541dd920bb7..2bf403195c09 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -90,7 +90,7 @@ struct nvme_dev {
struct miscdevice miscdev;
work_func_t reset_workfn;
struct work_struct reset_work;
- struct notifier_block nb;
+ struct work_struct cpu_work;
char name[12];
char serial[20];
char model[40];