aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-davinci.c
diff options
context:
space:
mode:
authorNicholas Krause <xerofoify@gmail.com>2016-02-02 19:17:59 -0500
committerLinus Walleij <linus.walleij@linaro.org>2016-02-16 00:20:04 +0100
commitd6f434e8585ac5e4256d894819bf76d02bc2ed3c (patch)
treef902445297048e99dcf39e813db6fc4ae40699a7 /drivers/gpio/gpio-davinci.c
parentgpio: Remove unused asm/gpio.h files (diff)
downloadlinux-dev-d6f434e8585ac5e4256d894819bf76d02bc2ed3c.tar.xz
linux-dev-d6f434e8585ac5e4256d894819bf76d02bc2ed3c.zip
gpio: davinci: Fix possible NULL pointer deference
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>
Diffstat (limited to 'drivers/gpio/gpio-davinci.c')
-rw-r--r--drivers/gpio/gpio-davinci.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
index 845edffbcc3f..96332f19e775 100644
--- a/drivers/gpio/gpio-davinci.c
+++ b/drivers/gpio/gpio-davinci.c
@@ -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;