From: Dmitry Torokhov Signed-off-by: Dmitry Torokhov Signed-off-by: Andrew Morton --- drivers/input/mousedev.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff -puN drivers/input/mousedev.c~mousedev-fix drivers/input/mousedev.c --- a/drivers/input/mousedev.c~mousedev-fix +++ a/drivers/input/mousedev.c @@ -406,12 +406,14 @@ static void mixdev_open_devices(void) struct mousedev *mousedev; list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) { - if (mousedev->exist && !mousedev->open) { - if (input_open_device(&mousedev->handle)) - continue; + if (mousedev->exist && !mousedev->mixdev_open) { + if (!mousedev->open) { + if (input_open_device(&mousedev->handle)) + continue; - get_device(&mousedev->dev); - mousedev->open++; + get_device(&mousedev->dev); + mousedev->open++; + } mousedev->mixdev_open++; } } _