diff options
| -rw-r--r-- | drivers/hid/usbhid/hiddev.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c index 711c9656ec0f..87bd64959a91 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c | |||
| @@ -361,10 +361,6 @@ static ssize_t hiddev_read(struct file * file, char __user * buffer, size_t coun | |||
| 361 | prepare_to_wait(&list->hiddev->wait, &wait, TASK_INTERRUPTIBLE); | 361 | prepare_to_wait(&list->hiddev->wait, &wait, TASK_INTERRUPTIBLE); |
| 362 | 362 | ||
| 363 | while (list->head == list->tail) { | 363 | while (list->head == list->tail) { |
| 364 | if (file->f_flags & O_NONBLOCK) { | ||
| 365 | retval = -EAGAIN; | ||
| 366 | break; | ||
| 367 | } | ||
| 368 | if (signal_pending(current)) { | 364 | if (signal_pending(current)) { |
| 369 | retval = -ERESTARTSYS; | 365 | retval = -ERESTARTSYS; |
| 370 | break; | 366 | break; |
| @@ -373,6 +369,10 @@ static ssize_t hiddev_read(struct file * file, char __user * buffer, size_t coun | |||
| 373 | retval = -EIO; | 369 | retval = -EIO; |
| 374 | break; | 370 | break; |
| 375 | } | 371 | } |
| 372 | if (file->f_flags & O_NONBLOCK) { | ||
| 373 | retval = -EAGAIN; | ||
| 374 | break; | ||
| 375 | } | ||
| 376 | 376 | ||
| 377 | /* let O_NONBLOCK tasks run */ | 377 | /* let O_NONBLOCK tasks run */ |
| 378 | mutex_unlock(&list->thread_lock); | 378 | mutex_unlock(&list->thread_lock); |
