gpio: davinci: Fix possible NULL pointer deference
authorNicholas Krause <xerofoify@gmail.com>
Wed, 3 Feb 2016 00:17:59 +0000 (19:17 -0500)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 15 Feb 2016 23:20:04 +0000 (00:20 +0100)
This fixes a possible NULL pointer deference in the function,
davinci_gpio_probe due to the function, gpio2regs being able
to return a NULL pointer if it rans to get the registers for
the gpio devices on a davinci board. Furthermore if this does
arise return -ENXIO to signal callers that this case has arisen
and avoiding setting the regs or other pointer values on the

Signed-off-by: Nicholas Krause <xerofoify@gmail.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-davinci.c

index 845edffbcc3fe4cd5d072cd77cc6e2f0c8eb60a9..96332f19e775d8efef2610fa567846938b7a575c 100644 (file)
@@ -257,6 +257,8 @@ static int davinci_gpio_probe(struct platform_device *pdev)
                spin_lock_init(&chips[i].lock);
 
                regs = gpio2regs(base);
+               if (!regs)
+                       return -ENXIO;
                chips[i].regs = regs;
                chips[i].set_data = &regs->set_data;
                chips[i].clr_data = &regs->clr_data;