From 3fc3952010ffa4927e7d736fefee93fdcf23a95d Mon Sep 17 00:00:00 2001 From: Rob Melby Date: Fri, 14 May 2004 14:23:53 +0200 Subject: evdev.c: input: Fix an oops at opentime of /dev/input/event devices --- drivers/input/evdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/input/evdev.c') 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; -- cgit v1.2.3