summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVojtech Pavlik <vojtech@twilight.ucw.cz>2002-07-10 06:57:02 +0200
committerVojtech Pavlik <vojtech@twilight.ucw.cz>2002-07-10 06:57:02 +0200
commitfef3dcc02ceff2e057a6af5c9fa64b4a85739f9e (patch)
treee131ac40c24274f8f17188ff33d375411a681448
parent72645c3dd35429dad852c85baa7eb014815bdaed (diff)
Fix a hang in serio code and a possible oops in input.
-rw-r--r--drivers/input/evbug.c3
-rw-r--r--drivers/input/serio/serio.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/input/evbug.c b/drivers/input/evbug.c
index 1b91f246cd08..e403d4f6d299 100644
--- a/drivers/input/evbug.c
+++ b/drivers/input/evbug.c
@@ -37,6 +37,8 @@ MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>");
MODULE_DESCRIPTION("Input driver event debug module");
MODULE_LICENSE("GPL");
+static char evbug_name[] = "evbug";
+
static void evbug_event(struct input_handle *handle, unsigned int type, unsigned int code, int value)
{
printk(KERN_DEBUG "evbug.c: Event. Dev: %s, Type: %d, Code: %d, Value: %d\n", handle->dev->phys, type, code, value);
@@ -52,6 +54,7 @@ static struct input_handle *evbug_connect(struct input_handler *handler, struct
handle->dev = dev;
handle->handler = handler;
+ handle->name = evbug_name;
input_open_device(handle);
diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
index e490e8a3a79d..9f54ec068b3a 100644
--- a/drivers/input/serio/serio.c
+++ b/drivers/input/serio/serio.c
@@ -82,6 +82,7 @@ void serio_handle_events(void)
}
serio->event = 0;
+ serio = serio->next;
}
}
@@ -95,7 +96,7 @@ static int serio_thread(void *nothing)
serio_handle_events();
if (current->flags & PF_FREEZE)
refrigerator(PF_IOTHREAD);
- wait_event_interruptible(serio_wait, 1);
+ interruptible_sleep_on(&serio_wait);
} while (!signal_pending(current));
printk(KERN_DEBUG "serio: kseriod exiting");