From: Dmitry Torokhov Date: Wed, 1 Jun 2005 07:39:36 +0000 (-0500) Subject: Input: mousedev - do not wake up readers when receiving 0-motion X-Git-Tag: v2.6.13-rc1~51^2~43^2~8 X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=8121152c1770ef1cd029030d51802c65c489950d;p=linux-2.6-omap-h63xx.git Input: mousedev - do not wake up readers when receiving 0-motion event. Signed-off-by: Dmitry Torokhov --- diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c index 96fb9870834..08b191180af 100644 --- a/drivers/input/mousedev.c +++ b/drivers/input/mousedev.c @@ -220,6 +220,7 @@ static void mousedev_notify_readers(struct mousedev *mousedev, struct mousedev_h struct mousedev_list *list; struct mousedev_motion *p; unsigned long flags; + int wake_readers = 0; list_for_each_entry(list, &mousedev->list, node) { spin_lock_irqsave(&list->packet_lock, flags); @@ -255,11 +256,14 @@ static void mousedev_notify_readers(struct mousedev *mousedev, struct mousedev_h spin_unlock_irqrestore(&list->packet_lock, flags); - if (list->ready) + if (list->ready) { kill_fasync(&list->fasync, SIGIO, POLL_IN); + wake_readers = 1; + } } - wake_up_interruptible(&mousedev->wait); + if (wake_readers) + wake_up_interruptible(&mousedev->wait); } static void mousedev_touchpad_touch(struct mousedev *mousedev, int value)