diff options
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); |