From e63a01249d9ce867e7c91abf8c51e5c29ec81f0a Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Mon, 28 May 2018 18:49:34 +0200 Subject: Refactor and better error handling --- pci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'pci.c') 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); -- cgit v1.2.3