]> www.infradead.org Git - users/jedix/linux-maple.git/commit
HID: magicmouse: fix race between input_register() and probe()
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>
Tue, 2 Apr 2013 09:11:52 +0000 (11:11 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 12 Apr 2013 16:52:03 +0000 (09:52 -0700)
commit0e55072e7c63a6569cab1447e9025d160abd9dd9
tree7433920fe0d413206d0ea94c306a2861b21446b8
parent79d7517b899ef695bf0674afb4e5ce1b1a4ecfeb
HID: magicmouse: fix race between input_register() and probe()

commit f1a9a149abc86903e81dd1b2e720f3f89874384b upstream.

Since kernel 3.7, it appears that the input registration occured before
the end of magicmouse_setup_input(). This is shown by receiving a lot of
"EV_SYN SYN_REPORT 1" instead of normal "EV_SYN SYN_REPORT 0".
This value means that the output buffer is full, and the user space
is loosing events.

Using .input_configured guarantees that the race is not occuring, and that
the call of "input_set_events_per_packet(input, 60)" is taken into account
by input_register().

Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=908604

Reported-and-Tested-By: Clarke Wixon <cwixon@usa.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hid/hid-magicmouse.c