summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Melby <async@cc.gatech.edu>2004-05-14 14:23:53 +0200
committerVojtech Pavlik <vojtech@suse.cz>2004-05-14 14:23:53 +0200
commit3fc3952010ffa4927e7d736fefee93fdcf23a95d (patch)
treedb05a67793bcea35e52ac3aeb52e4edd7712068d
parentfe34572fbdc8de4a35598c9cf28369c06c92aa3d (diff)
evdev.c:
input: Fix an oops at opentime of /dev/input/event devices
-rw-r--r--drivers/input/evdev.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index 906673ec5aa3..3de8089413da 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -126,7 +126,7 @@ static int evdev_open(struct inode * inode, struct file * file)
int i = iminor(inode) - EVDEV_MINOR_BASE;
int accept_err;
- if (i >= EVDEV_MINORS || !evdev_table[i])
+ if (i >= EVDEV_MINORS || !evdev_table[i] || !evdev_table[i]->exist)
return -ENODEV;
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_
return -EAGAIN;
retval = wait_event_interruptible(list->evdev->wait,
- list->head != list->tail && list->evdev->exist);
+ list->head != list->tail || (!list->evdev->exist));
if (retval)
return retval;