diff options
author | Keith Busch <keith.busch@intel.com> | 2014-06-11 11:51:35 -0600 |
---|---|---|
committer | Matthew Wilcox <matthew.r.wilcox@intel.com> | 2014-06-13 10:43:34 -0400 |
commit | f3db22feb5de6b98b7bae924c2d4b6c8d65bedae (patch) | |
tree | 1a2fc6e5dd199f15280a40aae824ac41b72177b7 /include/linux/nvme.h | |
parent | bd67608a6127c994e897c49cc4f72d9095925301 (diff) | |
download | op-kernel-dev-f3db22feb5de6b98b7bae924c2d4b6c8d65bedae.zip op-kernel-dev-f3db22feb5de6b98b7bae924c2d4b6c8d65bedae.tar.gz |
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/linux/nvme.h')
-rw-r--r-- | include/linux/nvme.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/nvme.h b/include/linux/nvme.h index 8541dd9..2bf4031 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]; |