diff options
-rw-r--r-- | drivers/mcb/mcb-pci.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/drivers/mcb/mcb-pci.c b/drivers/mcb/mcb-pci.c index 67d5e7d08df6..99dd9db90a80 100644 --- a/drivers/mcb/mcb-pci.c +++ b/drivers/mcb/mcb-pci.c @@ -55,19 +55,20 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) goto out_disable; } - res = request_mem_region(priv->mapbase, CHAM_HEADER_SIZE, - KBUILD_MODNAME); + res = devm_request_mem_region(&pdev->dev, priv->mapbase, + CHAM_HEADER_SIZE, + KBUILD_MODNAME); if (!res) { dev_err(&pdev->dev, "Failed to request PCI memory\n"); ret = -EBUSY; goto out_disable; } - priv->base = ioremap(priv->mapbase, CHAM_HEADER_SIZE); + priv->base = devm_ioremap(&pdev->dev, priv->mapbase, CHAM_HEADER_SIZE); if (!priv->base) { dev_err(&pdev->dev, "Cannot ioremap\n"); ret = -ENOMEM; - goto out_release; + goto out_disable; } flags = pci_resource_flags(pdev, 0); @@ -75,7 +76,7 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) ret = -ENOTSUPP; dev_err(&pdev->dev, "IO mapped PCI devices are not supported\n"); - goto out_iounmap; + goto out_disable; } pci_set_drvdata(pdev, priv); @@ -83,7 +84,7 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) priv->bus = mcb_alloc_bus(&pdev->dev); if (IS_ERR(priv->bus)) { ret = PTR_ERR(priv->bus); - goto out_iounmap; + goto out_disable; } priv->bus->get_irq = mcb_pci_get_irq; @@ -101,10 +102,6 @@ static int mcb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) out_mcb_bus: mcb_release_bus(priv->bus); -out_iounmap: - iounmap(priv->base); -out_release: - pci_release_region(pdev, 0); out_disable: pci_disable_device(pdev); return ret; @@ -116,8 +113,6 @@ static void mcb_pci_remove(struct pci_dev *pdev) mcb_release_bus(priv->bus); - iounmap(priv->base); - release_region(priv->mapbase, CHAM_HEADER_SIZE); pci_disable_device(pdev); } |