aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndres Salomon <dilinger@queued.net>2008-01-17 12:01:51 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2008-01-17 12:01:51 -0500
commit653e91d01fa4d39d2ed06a8c2096fef08b00ee7e (patch)
tree187406751d0a2a440a1735cc24b6e9e2b605c35f
parent746b31a9d4e08240d267069bcf5084eb7e427ad7 (diff)
downloadkernel_samsung_smdk4412-653e91d01fa4d39d2ed06a8c2096fef08b00ee7e.zip
kernel_samsung_smdk4412-653e91d01fa4d39d2ed06a8c2096fef08b00ee7e.tar.gz
kernel_samsung_smdk4412-653e91d01fa4d39d2ed06a8c2096fef08b00ee7e.tar.bz2
Input: psmouse - fix input_dev leak in lifebook driver
The lifebook driver may register a second input device, but it never unregisters it. This fixes that. Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-rw-r--r--drivers/input/mouse/lifebook.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/input/mouse/lifebook.c b/drivers/input/mouse/lifebook.c
index 9ec57d8..df81b0a 100644
--- a/drivers/input/mouse/lifebook.c
+++ b/drivers/input/mouse/lifebook.c
@@ -225,8 +225,13 @@ static void lifebook_set_resolution(struct psmouse *psmouse, unsigned int resolu
static void lifebook_disconnect(struct psmouse *psmouse)
{
+ struct lifebook_data *priv = psmouse->private;
+
psmouse_reset(psmouse);
- kfree(psmouse->private);
+ if (priv) {
+ input_unregister_device(priv->dev2);
+ kfree(priv);
+ }
psmouse->private = NULL;
}