dropped: HID-magicmouse-fix-race-between-input_register-and-probe.patch
This commit is contained in:
Dave Jones 2013-04-12 14:01:42 -04:00
parent 97b1b12b20
commit af745223da
3 changed files with 7 additions and 92 deletions

View File

@ -1,83 +0,0 @@
From f1a9a149abc86903e81dd1b2e720f3f89874384b Mon Sep 17 00:00:00 2001
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date: Tue, 2 Apr 2013 11:11:52 +0200
Subject: HID: magicmouse: fix race between input_register() and probe()
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
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 | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -462,6 +462,21 @@ static int magicmouse_input_mapping(stru
return 0;
}
+static void magicmouse_input_configured(struct hid_device *hdev,
+ struct hid_input *hi)
+
+{
+ struct magicmouse_sc *msc = hid_get_drvdata(hdev);
+
+ int ret = magicmouse_setup_input(msc->input, hdev);
+ if (ret) {
+ hid_err(hdev, "magicmouse setup input failed (%d)\n", ret);
+ /* clean msc->input to notify probe() of the failure */
+ msc->input = NULL;
+ }
+}
+
+
static int magicmouse_probe(struct hid_device *hdev,
const struct hid_device_id *id)
{
@@ -493,15 +508,10 @@ static int magicmouse_probe(struct hid_d
goto err_free;
}
- /* We do this after hid-input is done parsing reports so that
- * hid-input uses the most natural button and axis IDs.
- */
- if (msc->input) {
- ret = magicmouse_setup_input(msc->input, hdev);
- if (ret) {
- hid_err(hdev, "magicmouse setup input failed (%d)\n", ret);
- goto err_stop_hw;
- }
+ if (!msc->input) {
+ hid_err(hdev, "magicmouse input not registered\n");
+ ret = -ENOMEM;
+ goto err_stop_hw;
}
if (id->product == USB_DEVICE_ID_APPLE_MAGICMOUSE)
@@ -568,6 +578,7 @@ static struct hid_driver magicmouse_driv
.remove = magicmouse_remove,
.raw_event = magicmouse_raw_event,
.input_mapping = magicmouse_input_mapping,
+ .input_configured = magicmouse_input_configured,
};
static int __init magicmouse_init(void)

View File

@ -54,7 +54,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be appended after the rcX and
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
#
%global baserelease 105
%global baserelease 100
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@ -66,7 +66,7 @@ Summary: The Linux kernel
%if 0%{?released_kernel}
# Do we have a -stable update to apply?
%define stable_update 6
%define stable_update 7
# Is it a -stable RC?
%define stable_rc 0
# Set rpm version accordingly
@ -777,9 +777,6 @@ Patch25007: fix-child-thread-introspection.patch
#rhbz 844750
Patch25008: 0001-bluetooth-Add-support-for-atheros-04ca-3004-device-t.patch
#rhbz 908604
Patch25009: HID-magicmouse-fix-race-between-input_register-and-probe.patch
#rhbz 871932
Patch25010: 0001-drm-i915-add-quirk-to-invert-brightness-on-eMachines.patch
@ -1518,9 +1515,6 @@ ApplyPatch fix-child-thread-introspection.patch
ApplyPatch 0001-bluetooth-Add-support-for-atheros-04ca-3004-device-t.patch
#rhbz 908604
ApplyPatch HID-magicmouse-fix-race-between-input_register-and-probe.patch
#rhbz 871932
ApplyPatch 0001-drm-i915-add-quirk-to-invert-brightness-on-eMachines.patch
@ -2380,6 +2374,10 @@ fi
# '-' | |
# '-'
%changelog
* Fri Apr 12 2013 Dave Jones <davej@redhat.com> - 3.8.7-100
- 3.8.7
dropped: HID-magicmouse-fix-race-between-input_register-and-probe.patch
* Fri Apr 12 2013 Josh Boyer <jwboyer@redhat.com>
- Enable CONFIG_LDM_PARTITION (rhbz 948636)

View File

@ -1,2 +1,2 @@
1c738edfc54e7c65faeb90c436104e2f linux-3.8.tar.xz
f11748a53d4ec0e2dcbfbb64526d6434 patch-3.8.6.xz
d166692330220c425d69db82c9d693b6 patch-3.8.7.xz