diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2018-05-28 18:49:34 +0200 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2018-05-28 18:49:53 +0200 |
commit | e63a01249d9ce867e7c91abf8c51e5c29ec81f0a (patch) | |
tree | b64092810047e092e364010e607dd59394d6450e /pci.c | |
parent | ff8d6997c13bc256c15e8db4912f34e910c02b2a (diff) |
Refactor and better error handling
Diffstat (limited to 'pci.c')
-rw-r--r-- | pci.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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); |