summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2015-09-28 02:13:55 +0200
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2015-09-28 02:32:34 +0200
commit1a5e251996e1b602f2ddc9261ee9de0ca1875bfa (patch)
treec9e90c6c08918cfb85965b61dbbfa66dd78b7a0d
parentInput: uinput - fix crash when using ABS events (diff)
downloadlinux-1a5e251996e1b602f2ddc9261ee9de0ca1875bfa.tar.xz
linux-1a5e251996e1b602f2ddc9261ee9de0ca1875bfa.zip
Input: serio - fix blocking of parport
If parkbd_allocate_serio() fails to allocate memory we are releasing the parport but we missed unregistering the device. As a result this device with exclusive access to that parport remains registered. And no other device will be able to use that parport even though this driver has failed to load. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-rw-r--r--drivers/input/serio/parkbd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/input/serio/parkbd.c b/drivers/input/serio/parkbd.c
index 26b45936f9fd..1e8cd6f1fe9e 100644
--- a/drivers/input/serio/parkbd.c
+++ b/drivers/input/serio/parkbd.c
@@ -194,6 +194,7 @@ static int __init parkbd_init(void)
parkbd_port = parkbd_allocate_serio();
if (!parkbd_port) {
parport_release(parkbd_dev);
+ parport_unregister_device(parkbd_dev);
return -ENOMEM;
}