* Recent change to hid-core.c @ 2013-12-15 5:26 Mark Lord 2013-12-16 13:24 ` Jiri Kosina 0 siblings, 1 reply; 4+ messages in thread From: Mark Lord @ 2013-12-15 5:26 UTC (permalink / raw) To: jiri Kosina, linux-input Jiri, The recent update 08ec2dcc3527a20c619aca2fb36f800908256bac "Merge branches 'for-3.11/multitouch', 'for-3.11/sony' and 'for-3.11/upstream' into for-linus" included an unexpected change to the return code handing for ->raw_event() calls. A HID driver's raw_event() method previously could return these values: 0 --> keep processing. 1 --> no further processing required. <0 --> error. Now, "1" and "0" are both treated as "keep processing", so a lower level HID driver has to return a negative error code to achieve the "no further processing required" state. Was this intentional? Doesn't that have side-effects for some drivers? Thanks -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Recent change to hid-core.c 2013-12-15 5:26 Recent change to hid-core.c Mark Lord @ 2013-12-16 13:24 ` Jiri Kosina 2013-12-16 14:52 ` Mark Lord 0 siblings, 1 reply; 4+ messages in thread From: Jiri Kosina @ 2013-12-16 13:24 UTC (permalink / raw) To: Mark Lord; +Cc: linux-input On Sun, 15 Dec 2013, Mark Lord wrote: > The recent update 08ec2dcc3527a20c619aca2fb36f800908256bac > "Merge branches 'for-3.11/multitouch', 'for-3.11/sony' and 'for-3.11/upstream' into for-linus" > included an unexpected change to the return code handing for ->raw_event() calls. > > A HID driver's raw_event() method previously could return these values: > 0 --> keep processing. > 1 --> no further processing required. > <0 --> error. > > Now, "1" and "0" are both treated as "keep processing", > so a lower level HID driver has to return a negative error code > to achieve the "no further processing required" state. > > Was this intentional? Doesn't that have side-effects for some drivers? Hi Mark, this was intentional -- please see commit b1a1442a23 and discussion here: https://lkml.org/lkml/2013/3/21/591 If you have any other concerns, please let me know. -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Recent change to hid-core.c 2013-12-16 13:24 ` Jiri Kosina @ 2013-12-16 14:52 ` Mark Lord 2013-12-16 14:56 ` Jiri Kosina 0 siblings, 1 reply; 4+ messages in thread From: Mark Lord @ 2013-12-16 14:52 UTC (permalink / raw) To: Jiri Kosina; +Cc: linux-input [-- Attachment #1: Type: text/plain, Size: 1298 bytes --] On 13-12-16 08:24 AM, Jiri Kosina wrote: > On Sun, 15 Dec 2013, Mark Lord wrote: > >> The recent update 08ec2dcc3527a20c619aca2fb36f800908256bac >> "Merge branches 'for-3.11/multitouch', 'for-3.11/sony' and 'for-3.11/upstream' into for-linus" >> included an unexpected change to the return code handing for ->raw_event() calls. ,, >> Was this intentional? Doesn't that have side-effects for some drivers? .. > this was intentional -- please see commit b1a1442a23 and discussion here: > https://lkml.org/lkml/2013/3/21/591 .. Thanks Jiri. In that case you'll be wanting this patch (unmangled copy attached) as well to clean up a tiny bit of leftover logic in there. * * * * * * SNIP * * * * * * Recent updates to raw_event handling resulted in some leftover "dead" logic in hid-core.c::hid_input_report(). Nuke it. Signed-off-by: Mark Lord <mlord@pobox.com> --- old/drivers/hid/hid-core.c 2013-12-12 01:38:07.000000000 -0500 +++ linux/drivers/hid/hid-core.c 2013-12-16 09:48:27.339162173 -0500 @@ -1418,10 +1418,8 @@ if (hdrv && hdrv->raw_event && hid_match_report(hid, report)) { ret = hdrv->raw_event(hid, report, data, size); - if (ret < 0) { - ret = ret < 0 ? ret : 0; + if (ret < 0) goto unlock; - } } ret = hid_report_raw_event(hid, type, data, size, interrupt); [-- Attachment #2: hid_core_remove_leftover_logic.patch --] [-- Type: text/x-patch, Size: 599 bytes --] Recent updates to raw_event handling resulted in some leftover "dead" logic in hid-core.c::hid_input_report(). Nuke it. Signed-off-by: Mark Lord <mlord@pobox.com> --- old/drivers/hid/hid-core.c 2013-12-12 01:38:07.000000000 -0500 +++ linux/drivers/hid/hid-core.c 2013-12-16 09:48:27.339162173 -0500 @@ -1418,10 +1418,8 @@ if (hdrv && hdrv->raw_event && hid_match_report(hid, report)) { ret = hdrv->raw_event(hid, report, data, size); - if (ret < 0) { - ret = ret < 0 ? ret : 0; + if (ret < 0) goto unlock; - } } ret = hid_report_raw_event(hid, type, data, size, interrupt); ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Recent change to hid-core.c 2013-12-16 14:52 ` Mark Lord @ 2013-12-16 14:56 ` Jiri Kosina 0 siblings, 0 replies; 4+ messages in thread From: Jiri Kosina @ 2013-12-16 14:56 UTC (permalink / raw) To: Mark Lord; +Cc: linux-input On Mon, 16 Dec 2013, Mark Lord wrote: > >> The recent update 08ec2dcc3527a20c619aca2fb36f800908256bac > >> "Merge branches 'for-3.11/multitouch', 'for-3.11/sony' and 'for-3.11/upstream' into for-linus" > >> included an unexpected change to the return code handing for ->raw_event() calls. > ,, > >> Was this intentional? Doesn't that have side-effects for some drivers? > .. > > this was intentional -- please see commit b1a1442a23 and discussion here: > > https://lkml.org/lkml/2013/3/21/591 > .. > > Thanks Jiri. > In that case you'll be wanting this patch (unmangled copy attached) as well > to clean up a tiny bit of leftover logic in there. > > * * * * * * SNIP * * * * * * > > Recent updates to raw_event handling resulted in some leftover "dead" logic > in hid-core.c::hid_input_report(). Nuke it. > > Signed-off-by: Mark Lord <mlord@pobox.com> > > --- old/drivers/hid/hid-core.c 2013-12-12 01:38:07.000000000 -0500 > +++ linux/drivers/hid/hid-core.c 2013-12-16 09:48:27.339162173 -0500 > @@ -1418,10 +1418,8 @@ > > if (hdrv && hdrv->raw_event && hid_match_report(hid, report)) { > ret = hdrv->raw_event(hid, report, data, size); > - if (ret < 0) { > - ret = ret < 0 ? ret : 0; > + if (ret < 0) > goto unlock; > - } Please see commit 556483e2a ("HID: remove self-assignment from hid_input_report") in Linus' tree. -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-12-16 14:56 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-12-15 5:26 Recent change to hid-core.c Mark Lord 2013-12-16 13:24 ` Jiri Kosina 2013-12-16 14:52 ` Mark Lord 2013-12-16 14:56 ` Jiri Kosina
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.