Input: adp5588-keypad - fix NULL dereference in adp5588_gpio_add()
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 3 Aug 2010 01:33:26 +0000 (18:33 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 3 Aug 2010 01:34:07 +0000 (18:34 -0700)
The kpad structure is assigned to i2c client via i2s_set_clientdata()
at the end of adp5588_probe(), but in adp5588_gpio_add() we tried to
access it (via dev_get_drvdata! which is not nice at all) causing an
oops.

Let's pass pointer to kpad directly into adp5588_gpio_add() and
adp5588_gpio_remove() to avoid accessing driver data before it is
set up.

Also split out building of gpiomap into a separate function to
clear the logic.

Reported-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

No differences found