Commit f2d45fdf authored by Yang Yingliang's avatar Yang Yingliang Committed by Paolo Abeni

stmmac: dwmac-loongson: fix missing pci_disable_msi() while module exiting

pci_enable_msi() has been called in loongson_dwmac_probe(),
so pci_disable_msi() needs be called in remove path and error
path of probe().

Fixes: 30bba69d ("stmmac: pci: Add dwmac support for Loongson")
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent c6092ea1
...@@ -125,6 +125,7 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id ...@@ -125,6 +125,7 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
if (res.irq < 0) { if (res.irq < 0) {
dev_err(&pdev->dev, "IRQ macirq not found\n"); dev_err(&pdev->dev, "IRQ macirq not found\n");
ret = -ENODEV; ret = -ENODEV;
goto err_disable_msi;
} }
res.wol_irq = of_irq_get_byname(np, "eth_wake_irq"); res.wol_irq = of_irq_get_byname(np, "eth_wake_irq");
...@@ -137,9 +138,18 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id ...@@ -137,9 +138,18 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
if (res.lpi_irq < 0) { if (res.lpi_irq < 0) {
dev_err(&pdev->dev, "IRQ eth_lpi not found\n"); dev_err(&pdev->dev, "IRQ eth_lpi not found\n");
ret = -ENODEV; ret = -ENODEV;
goto err_disable_msi;
} }
return stmmac_dvr_probe(&pdev->dev, plat, &res); ret = stmmac_dvr_probe(&pdev->dev, plat, &res);
if (ret)
goto err_disable_msi;
return ret;
err_disable_msi:
pci_disable_msi(pdev);
return ret;
} }
static void loongson_dwmac_remove(struct pci_dev *pdev) static void loongson_dwmac_remove(struct pci_dev *pdev)
...@@ -155,6 +165,7 @@ static void loongson_dwmac_remove(struct pci_dev *pdev) ...@@ -155,6 +165,7 @@ static void loongson_dwmac_remove(struct pci_dev *pdev)
break; break;
} }
pci_disable_msi(pdev);
pci_disable_device(pdev); pci_disable_device(pdev);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment