Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 13 Oct 2009 17:10:33 +0000 (10:10 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 13 Oct 2009 17:10:33 +0000 (10:10 -0700)
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
  HID: fix possible deadlock in hidraw_read
  HID: fix kerneldoc comment for hid_input_report()
  HID: add __init/__exit macros to twinhan.c

1  2 
drivers/hid/hidraw.c

diff --combined drivers/hid/hidraw.c
@@@ -30,7 -30,6 +30,7 @@@
  #include <linux/major.h>
  #include <linux/hid.h>
  #include <linux/mutex.h>
 +#include <linux/sched.h>
  #include <linux/smp_lock.h>
  
  #include <linux/hidraw.h>
@@@ -48,10 -47,9 +48,9 @@@ static ssize_t hidraw_read(struct file 
        char *report;
        DECLARE_WAITQUEUE(wait, current);
  
-       while (ret == 0) {
-               mutex_lock(&list->read_mutex);
+       mutex_lock(&list->read_mutex);
  
+       while (ret == 0) {
                if (list->head == list->tail) {
                        add_wait_queue(&list->hidraw->wait, &wait);
                        set_current_state(TASK_INTERRUPTIBLE);