m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/pci.c
diff options
context:
space:
mode:
authorMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2018-05-28 18:49:34 +0200
committerMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2018-05-28 18:49:53 +0200
commite63a01249d9ce867e7c91abf8c51e5c29ec81f0a (patch)
treeb64092810047e092e364010e607dd59394d6450e /pci.c
parentff8d6997c13bc256c15e8db4912f34e910c02b2a (diff)
Refactor and better error handling
Diffstat (limited to 'pci.c')
-rw-r--r--pci.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/pci.c b/pci.c
index 69783d6..11f6256 100644
--- a/pci.c
+++ b/pci.c
@@ -33,7 +33,7 @@ irqreturn_t doom_irq(int irq, void *dev)
interrupts = ioread32(iomem + HARDDOOM_INTR) & ioread32(iomem + HARDDOOM_INTR_ENABLE);
iowrite32(interrupts, iomem + HARDDOOM_INTR);
-
+
if (!interrupts) {
return IRQ_NONE;
}
@@ -65,6 +65,7 @@ int init_pci(struct pci_dev *dev)
}
pci_set_drvdata(dev, doom_data);
doom_data->iomem = pci_iomap(dev, 0, 0);
+ ORFAIL_NULL(doom_data->iomem, -ENOMEM, error_iomem);
doom_data->pci_device = &dev->dev;
pci_set_master(dev);
@@ -85,6 +86,7 @@ int init_pci(struct pci_dev *dev)
error_irq:
pci_clear_master(dev);
pci_iounmap(dev, doom_data->iomem);
+error_iomem:
kfree(doom_data);
error_kmalloc:
pci_release_regions(dev);