Skip to content

Commit 02f425f

Browse files
caaverymartinkpetersen
authored andcommitted
scsi: vmw_pscsi: Rearrange code to avoid multiple calls to free_irq during unload
Currently pvscsi_remove calls free_irq more than once as pvscsi_release_resources and __pvscsi_shutdown both call pvscsi_shutdown_intr. This results in a 'Trying to free already-free IRQ' warning and stack trace. To solve the problem pvscsi_shutdown_intr has been moved out of pvscsi_release_resources. Signed-off-by: Cathy Avery <[email protected]> Reviewed-by: Ewan D. Milne <[email protected]> Reviewed-by: Dan Carpenter <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
1 parent 5db6dd1 commit 02f425f

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

Diff for: drivers/scsi/vmw_pvscsi.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -1202,8 +1202,6 @@ static void pvscsi_shutdown_intr(struct pvscsi_adapter *adapter)
12021202

12031203
static void pvscsi_release_resources(struct pvscsi_adapter *adapter)
12041204
{
1205-
pvscsi_shutdown_intr(adapter);
1206-
12071205
if (adapter->workqueue)
12081206
destroy_workqueue(adapter->workqueue);
12091207

@@ -1534,6 +1532,7 @@ static int pvscsi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
15341532
out_reset_adapter:
15351533
ll_adapter_reset(adapter);
15361534
out_release_resources:
1535+
pvscsi_shutdown_intr(adapter);
15371536
pvscsi_release_resources(adapter);
15381537
scsi_host_put(host);
15391538
out_disable_device:
@@ -1542,6 +1541,7 @@ static int pvscsi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
15421541
return error;
15431542

15441543
out_release_resources_and_disable:
1544+
pvscsi_shutdown_intr(adapter);
15451545
pvscsi_release_resources(adapter);
15461546
goto out_disable_device;
15471547
}

0 commit comments

Comments
 (0)