HID: non-input reports can also be numbered
authorJiri Kosina <jkosina@suse.cz>
Fri, 17 Oct 2008 13:01:15 +0000 (15:01 +0200)
committerJiri Kosina <jkosina@suse.cz>
Sun, 4 Jan 2009 00:00:50 +0000 (01:00 +0100)
When computing the maximal buffer size needed, we must take into
account that not only input reports can be numbered.

Pointed out in bugzilla #10467

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/usbhid/hid-core.c

index 606369ea24ca038e36704f6b9c14d415e5fd5d36..2afc8617f5919ec28add338ac3197cd5c7c36998 100644 (file)
@@ -4,7 +4,7 @@
  *  Copyright (c) 1999 Andreas Gal
  *  Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz>
  *  Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc
- *  Copyright (c) 2006-2007 Jiri Kosina
+ *  Copyright (c) 2006-2008 Jiri Kosina
  */
 
 /*
@@ -641,9 +641,7 @@ static void hid_find_max_report(struct hid_device *hid, unsigned int type,
        unsigned int size;
 
        list_for_each_entry(report, &hid->report_enum[type].report_list, list) {
-               size = ((report->size - 1) >> 3) + 1;
-               if (type == HID_INPUT_REPORT && hid->report_enum[type].numbered)
-                       size++;
+               size = ((report->size - 1) >> 3) + 1 + hid->report_enum[type].numbered;
                if (*max < size)
                        *max = size;
        }