From 6af90028a55d01bde390cf66ed6c5c4e03b777d4 Mon Sep 17 00:00:00 2001 From: Jiri Kosina Date: Fri, 30 Nov 2007 11:12:58 +0100 Subject: [PATCH] --- yaml --- r: 77656 b: refs/heads/master c: c4124c9b68bf8ecf1e8afedad3a22e18666cb6f3 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/hid/hid-core.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index a4fc08630489..fba825343f4c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0887b4cb2102e281c123abf1408f218c15fd3ba3 +refs/heads/master: c4124c9b68bf8ecf1e8afedad3a22e18666cb6f3 diff --git a/trunk/drivers/hid/hid-core.c b/trunk/drivers/hid/hid-core.c index 2884b036495a..d73a768e176e 100644 --- a/trunk/drivers/hid/hid-core.c +++ b/trunk/drivers/hid/hid-core.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -758,7 +759,9 @@ static __inline__ __u32 extract(__u8 *report, unsigned offset, unsigned n) { u64 x; - WARN_ON(n > 32); + if (n > 32) + printk(KERN_WARNING "HID: extract() called with n (%d) > 32! (%s)\n", + n, current->comm); report += offset >> 3; /* adjust byte index */ offset &= 7; /* now only need bit offset into one byte */ @@ -780,8 +783,13 @@ static __inline__ void implement(__u8 *report, unsigned offset, unsigned n, __u3 __le64 x; u64 m = (1ULL << n) - 1; - WARN_ON(n > 32); + if (n > 32) + printk(KERN_WARNING "HID: implement() called with n (%d) > 32! (%s)\n", + n, current->comm); + if (value > m) + printk(KERN_WARNING "HID: implement() called with too large value %d! (%s)\n", + value, current->comm); WARN_ON(value > m); value &= m;