ionic: prevent pci disable of already disabled device
authorShannon Nelson <shannon.nelson@amd.com>
Mon, 11 Dec 2023 18:58:00 +0000 (10:58 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 13 Dec 2023 12:35:55 +0000 (12:35 +0000)
If a reset fails, the PCI device is left in a disabled
state, so don't try to disable it again on driver remove.
This prevents a scary looking WARN trace in the kernel log.

    ionic 0000:2b:00.0: disabling already-disabled device

Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c

index f69178b9636fb626caa769c603fd2ed5327c7b83..da951dc7becb275617600628b53d8c0dd5ef0694 100644 (file)
@@ -217,7 +217,9 @@ static void ionic_clear_pci(struct ionic *ionic)
 {
        ionic_unmap_bars(ionic);
        pci_release_regions(ionic->pdev);
-       pci_disable_device(ionic->pdev);
+
+       if (atomic_read(&ionic->pdev->enable_cnt) > 0)
+               pci_disable_device(ionic->pdev);
 }
 
 static int ionic_setup_one(struct ionic *ionic)