Loading drivers/block/nvme-core.c +19 −0 Original line number Diff line number Diff line Loading @@ -2002,6 +2002,19 @@ static size_t db_bar_size(struct nvme_dev *dev, unsigned nr_io_queues) return 4096 + ((nr_io_queues + 1) * 8 * dev->db_stride); } static int nvme_cpu_notify(struct notifier_block *self, unsigned long action, void *hcpu) { struct nvme_dev *dev = container_of(self, struct nvme_dev, nb); switch (action) { case CPU_ONLINE: case CPU_DEAD: nvme_assign_io_queues(dev); break; } return NOTIFY_OK; } static int nvme_setup_io_queues(struct nvme_dev *dev) { struct nvme_queue *adminq = raw_nvmeq(dev, 0); Loading Loading @@ -2080,6 +2093,11 @@ static int nvme_setup_io_queues(struct nvme_dev *dev) nvme_free_queues(dev, nr_io_queues + 1); nvme_assign_io_queues(dev); dev->nb.notifier_call = &nvme_cpu_notify; result = register_hotcpu_notifier(&dev->nb); if (result) goto free_queues; return 0; free_queues: Loading Loading @@ -2357,6 +2375,7 @@ static void nvme_dev_shutdown(struct nvme_dev *dev) int i; dev->initialized = 0; unregister_hotcpu_notifier(&dev->nb); spin_lock(&dev_list_lock); list_del_init(&dev->node); Loading include/linux/nvme.h +1 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ struct nvme_dev { struct kref kref; struct miscdevice miscdev; struct work_struct reset_work; struct notifier_block nb; char name[12]; char serial[20]; char model[40]; Loading Loading
drivers/block/nvme-core.c +19 −0 Original line number Diff line number Diff line Loading @@ -2002,6 +2002,19 @@ static size_t db_bar_size(struct nvme_dev *dev, unsigned nr_io_queues) return 4096 + ((nr_io_queues + 1) * 8 * dev->db_stride); } static int nvme_cpu_notify(struct notifier_block *self, unsigned long action, void *hcpu) { struct nvme_dev *dev = container_of(self, struct nvme_dev, nb); switch (action) { case CPU_ONLINE: case CPU_DEAD: nvme_assign_io_queues(dev); break; } return NOTIFY_OK; } static int nvme_setup_io_queues(struct nvme_dev *dev) { struct nvme_queue *adminq = raw_nvmeq(dev, 0); Loading Loading @@ -2080,6 +2093,11 @@ static int nvme_setup_io_queues(struct nvme_dev *dev) nvme_free_queues(dev, nr_io_queues + 1); nvme_assign_io_queues(dev); dev->nb.notifier_call = &nvme_cpu_notify; result = register_hotcpu_notifier(&dev->nb); if (result) goto free_queues; return 0; free_queues: Loading Loading @@ -2357,6 +2375,7 @@ static void nvme_dev_shutdown(struct nvme_dev *dev) int i; dev->initialized = 0; unregister_hotcpu_notifier(&dev->nb); spin_lock(&dev_list_lock); list_del_init(&dev->node); Loading
include/linux/nvme.h +1 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ struct nvme_dev { struct kref kref; struct miscdevice miscdev; struct work_struct reset_work; struct notifier_block nb; char name[12]; char serial[20]; char model[40]; Loading