summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/gpio.c
diff options
context:
space:
mode:
authorAlexander Shiyan <shc_work@mail.ru>2013-04-26 20:41:07 +0400
committerSascha Hauer <s.hauer@pengutronix.de>2013-04-30 09:35:55 +0200
commite1f458ac5376db84ac16e2fe397b91ae2397dedb (patch)
treeefc97e2a9e6850e49b88739fed9f217f4f89b4eb /arch/arm/mach-at91/gpio.c
parent7077230b4609c760d2b30851048dcaccacb3e9a6 (diff)
downloadbarebox-e1f458ac5376db84ac16e2fe397b91ae2397dedb.tar.gz
barebox-e1f458ac5376db84ac16e2fe397b91ae2397dedb.tar.xz
ARM: at91 gpio: Fix possible null pointer dereference
Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-at91/gpio.c')
-rw-r--r--arch/arm/mach-at91/gpio.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index c2618c7b56..0e39a526d2 100644
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
@@ -185,10 +185,10 @@ static struct at91_pinctrl_mux_ops at91sam9x5_ops = {
int at91_mux_pin(unsigned pin, enum at91_mux mux, int use_pullup)
{
struct at91_gpio_chip *at91_gpio = pin_to_controller(pin);
- void __iomem *pio = at91_gpio->regbase;
+ void __iomem *pio;
+ struct device_d *dev;
unsigned mask = pin_to_mask(pin);
int bank = pin_to_bank(pin);
- struct device_d *dev = at91_gpio->chip.dev;
if (!at91_gpio)
return -EINVAL;
@@ -197,6 +197,7 @@ int at91_mux_pin(unsigned pin, enum at91_mux mux, int use_pullup)
if (!pio)
return -EINVAL;
+ dev = at91_gpio->chip.dev;
at91_mux_disable_interrupt(pio, mask);
pin %= MAX_NB_GPIO_PER_BANK;