summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorKeith Busch <keith.busch@intel.com>2014-06-11 11:51:35 -0600
committerMatthew Wilcox <matthew.r.wilcox@intel.com>2014-06-13 10:43:34 -0400
commitf3db22feb5de6b98b7bae924c2d4b6c8d65bedae (patch)
tree1a2fc6e5dd199f15280a40aae824ac41b72177b7 /include
parentbd67608a6127c994e897c49cc4f72d9095925301 (diff)
downloadlinux-f3db22feb5de6b98b7bae924c2d4b6c8d65bedae.tar.bz2
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];