Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 717194 Details for
Bug 908604
Apple Bluetooth "Magic" Trackpad - bad tap and scroll behavior
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
attempted fix
0001-HID-magicmouse-fix-race-between-input_register-and-p.patch (text/plain), 2.51 KB, created by
Benjamin Tissoires
on 2013-03-27 17:58:43 UTC
(
hide
)
Description:
attempted fix
Filename:
MIME Type:
Creator:
Benjamin Tissoires
Created:
2013-03-27 17:58:43 UTC
Size:
2.51 KB
patch
obsolete
>From a3a0379842c8b7478f75082eff17be23d4c05a9b Mon Sep 17 00:00:00 2001 >From: Benjamin Tissoires <benjamin.tissoires@redhat.com> >Date: Wed, 27 Mar 2013 17:35:39 +0100 >Subject: [PATCH] HID: magicmouse: fix race between input_register() and > probe() > >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". >Those values 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 > >Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> >--- > drivers/hid/hid-magicmouse.c | 29 ++++++++++++++++++++--------- > 1 file changed, 20 insertions(+), 9 deletions(-) > >diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c >index 25ddf3e..811062c 100644 >--- a/drivers/hid/hid-magicmouse.c >+++ b/drivers/hid/hid-magicmouse.c >@@ -462,6 +462,21 @@ static int magicmouse_input_mapping(struct hid_device *hdev, > 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_device *hdev, > 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_driver = { > .remove = magicmouse_remove, > .raw_event = magicmouse_raw_event, > .input_mapping = magicmouse_input_mapping, >+ .input_configured = magicmouse_input_configured, > }; > > static int __init magicmouse_init(void) >-- >1.8.1.4 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 908604
:
694253
|
716996
|
716997
|
716998
|
716999
|
717000
|
717001
| 717194 |
717426
|
717427
|
717428
|
717429