Commit 3fc39520 authored by Rob Melby's avatar Rob Melby Committed by Vojtech Pavlik

evdev.c:

  input: Fix an oops at opentime of /dev/input/event devices
parent fe34572f
...@@ -126,7 +126,7 @@ static int evdev_open(struct inode * inode, struct file * file) ...@@ -126,7 +126,7 @@ static int evdev_open(struct inode * inode, struct file * file)
int i = iminor(inode) - EVDEV_MINOR_BASE; int i = iminor(inode) - EVDEV_MINOR_BASE;
int accept_err; int accept_err;
if (i >= EVDEV_MINORS || !evdev_table[i]) if (i >= EVDEV_MINORS || !evdev_table[i] || !evdev_table[i]->exist)
return -ENODEV; return -ENODEV;
if ((accept_err = input_accept_process(&(evdev_table[i]->handle), file))) if ((accept_err = input_accept_process(&(evdev_table[i]->handle), file)))
...@@ -175,7 +175,7 @@ static ssize_t evdev_read(struct file * file, char * buffer, size_t count, loff_ ...@@ -175,7 +175,7 @@ static ssize_t evdev_read(struct file * file, char * buffer, size_t count, loff_
return -EAGAIN; return -EAGAIN;
retval = wait_event_interruptible(list->evdev->wait, retval = wait_event_interruptible(list->evdev->wait,
list->head != list->tail && list->evdev->exist); list->head != list->tail || (!list->evdev->exist));
if (retval) if (retval)
return retval; return retval;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment