summaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2011-03-16 22:09:09 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2011-03-16 23:28:23 -0700
commit2721a89ac41f2e7705484c1582c293c4eee5344d (patch)
treebf9631ffaa8364e360bdb38d8ea32fc234e5972b /drivers/input
parentb88aa494c27552e6fa94e4abaa5ea4f9b2f170a8 (diff)
downloadlinux-2721a89ac41f2e7705484c1582c293c4eee5344d.tar.bz2
Input: tsc2005 - clear driver data after unbinding
We should not leave garbage pointers in driver structure after we unbind it from the device or if bind fails. Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/touchscreen/tsc2005.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c
index 596fd1f01b22..732c81e9a3e6 100644
--- a/drivers/input/touchscreen/tsc2005.c
+++ b/drivers/input/touchscreen/tsc2005.c
@@ -634,8 +634,10 @@ static int __devinit tsc2005_probe(struct spi_device *spi)
spi_setup(spi);
r = tsc2005_setup(ts, pdata);
- if (r)
+ if (r) {
kfree(ts);
+ spi_set_drvdata(spi, NULL);
+ }
return r;
}
@@ -659,6 +661,7 @@ static int __devexit tsc2005_remove(struct spi_device *spi)
input_unregister_device(ts->idev);
kfree(ts);
+ spi_set_drvdata(spi, NULL);
return 0;
}