]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/gpio/gpio-sta2x11.c
Merge git://www.linux-watchdog.org/linux-watchdog
[mirror_ubuntu-artful-kernel.git] / drivers / gpio / gpio-sta2x11.c
index 39df0620fa38d1d45a006659f7ddf1c5fdec1e04..9e705162da8d7379a74fb25575a679d311157a70 100644 (file)
@@ -320,13 +320,16 @@ static irqreturn_t gsta_gpio_handler(int irq, void *dev_id)
        return ret;
 }
 
-static void gsta_alloc_irq_chip(struct gsta_gpio *chip)
+static int gsta_alloc_irq_chip(struct gsta_gpio *chip)
 {
        struct irq_chip_generic *gc;
        struct irq_chip_type *ct;
 
        gc = irq_alloc_generic_chip(KBUILD_MODNAME, 1, chip->irq_base,
                                     chip->reg_base, handle_simple_irq);
+       if (!gc)
+               return -ENOMEM;
+
        gc->private = chip;
        ct = gc->chip_types;
 
@@ -350,6 +353,8 @@ static void gsta_alloc_irq_chip(struct gsta_gpio *chip)
                }
                gc->irq_cnt = i - gc->irq_base;
        }
+
+       return 0;
 }
 
 /* The platform device used here is instantiated by the MFD device */
@@ -400,7 +405,10 @@ static int gsta_probe(struct platform_device *dev)
                return err;
        }
        chip->irq_base = err;
-       gsta_alloc_irq_chip(chip);
+
+       err = gsta_alloc_irq_chip(chip);
+       if (err)
+               return err;
 
        err = devm_request_irq(&dev->dev, pdev->irq, gsta_gpio_handler,
                               IRQF_SHARED, KBUILD_MODNAME, chip);