提交 53281edb 编写于 作者: J John Soni Jose 提交者: Christoph Hellwig

be2iscsi : Fix kernel panic during reboot/shutdown

 In the reboot/shutdown path, workqueue was destroyed after the
 adapter resource were freed. The task associated with workqueue
 was getting executed after resources were freed. This lead to
 kernel panic.
Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com>
Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: NChristoph Hellwig <hch@lst.de>
上级 f4303d8f
...@@ -5223,6 +5223,7 @@ static void beiscsi_quiesce(struct beiscsi_hba *phba, ...@@ -5223,6 +5223,7 @@ static void beiscsi_quiesce(struct beiscsi_hba *phba,
free_irq(phba->pcidev->irq, phba); free_irq(phba->pcidev->irq, phba);
} }
pci_disable_msix(phba->pcidev); pci_disable_msix(phba->pcidev);
cancel_delayed_work_sync(&phba->beiscsi_hw_check_task);
for (i = 0; i < phba->num_cpus; i++) { for (i = 0; i < phba->num_cpus; i++) {
pbe_eq = &phwi_context->be_eq[i]; pbe_eq = &phwi_context->be_eq[i];
...@@ -5244,7 +5245,6 @@ static void beiscsi_quiesce(struct beiscsi_hba *phba, ...@@ -5244,7 +5245,6 @@ static void beiscsi_quiesce(struct beiscsi_hba *phba,
hwi_cleanup(phba); hwi_cleanup(phba);
} }
cancel_delayed_work_sync(&phba->beiscsi_hw_check_task);
} }
static void beiscsi_remove(struct pci_dev *pcidev) static void beiscsi_remove(struct pci_dev *pcidev)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册