diff options
author | Kyle McMartin <kyle@parisc-linux.org> | 2006-03-30 11:47:32 -0500 |
---|---|---|
committer | Kyle McMartin <kyle@hera.kernel.org> | 2006-03-30 17:48:59 +0000 |
commit | cd7a9202a5a6e7712df2b80ed5ebd7b078130fc3 (patch) | |
tree | c7e2504dd6de0d2412815dce658468f7add77173 /drivers/input/mouse/hil_ptr.c | |
parent | 4da9f131a74d12de56c44da6d522a9116da06805 (diff) |
[PARISC] Fix double free when removing HIL drivers
On Thu, Mar 30, 2006 at 08:31:02AM -0500, Dmitry Torokhov wrote:
> Don't do that, its double free. input_unregister_device() normally
> causes release() to be called and free the device. input_free_device
> is only to be called when input_register_device has not been called or
> failed.
>
> Plus you might want to unregister device after closing serio port,
> otherwise your interrupt routine might be referencing already freed
> memory.
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Diffstat (limited to 'drivers/input/mouse/hil_ptr.c')
-rw-r--r-- | drivers/input/mouse/hil_ptr.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/input/mouse/hil_ptr.c b/drivers/input/mouse/hil_ptr.c index a648f9fe3d9..bfb564fd8fe 100644 --- a/drivers/input/mouse/hil_ptr.c +++ b/drivers/input/mouse/hil_ptr.c @@ -233,9 +233,8 @@ static void hil_ptr_disconnect(struct serio *serio) return; } - input_unregister_device(ptr->dev); serio_close(serio); - input_free_device(ptr->dev); + input_unregister_device(ptr->dev); kfree(ptr); } |