I have a sensor hub device, which exposes this problem. I will send patch again. I will send the patch again. Thanks, Srinivas -----Original Message----- From: Jiri Kosina [mailto:jkosina@xxxxxxx] Sent: Thursday, May 10, 2012 3:21 AM To: Pandruvada, Srinivas Cc: linux-input@xxxxxxxxxxxxxxx Subject: Re: [PATCH] hid_parse failure On Tue, 1 May 2012, srinivas pandruvada wrote: > When logical maximum is 0xffffffff, the parser fails even if logical > minimum is equal to or greater than 0. > By HID specification, if both the Logical Minimum and Logical Maximum > extents are defined as positive values (0 or greater) then the report > field can be assumed to be an unsigned value. > Otherwise, all integer values are signed values represented in 2’s > complement format. Signed-off-by: line is missing, could you please fix that? > --- > drivers/hid/hid-core.c | 12 ++++++++++-- > 1 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index > c757f10..b616f4b 100644 > --- a/drivers/hid/hid-core.c > +++ b/drivers/hid/hid-core.c > @@ -225,8 +225,16 @@ static int hid_add_field(struct hid_parser *parser, unsigned report_type, unsign > return -1; > } > > - if (parser->global.logical_maximum < parser->global.logical_minimum) { > - dbg_hid("logical range invalid %d %d\n", parser->global.logical_minimum, parser->global.logical_maximum); > + if ((parser->global.logical_minimum < 0 && > + parser->global.logical_maximum < > + parser->global.logical_minimum) || > + (parser->global.logical_minimum >= 0 && > + (__u32)parser->global.logical_maximum < > + (__u32)parser->global.logical_minimum) > + ) { > + dbg_hid("logical range invalid 0x%x 0x%x\n", > + parser->global.logical_minimum, > + parser->global.logical_maximum); > return -1; > } The change looks correct per se, but I will have to think a little bit more whether other places of report parsing don't need similar adjustments as well to work properly in such scenarios. How did you find this out? By code/spec inspection, or do you actually have the device that exposes this problem? Thanks, -- Jiri Kosina SUSE Labs ��.n��������+%������w��{.n�����{��)��^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�