|
@@ -284,13 +284,7 @@ static void serio_handle_event(void)
|
|
|
|
|
|
mutex_lock(&serio_mutex);
|
|
|
|
|
|
- /*
|
|
|
- * Note that we handle only one event here to give swsusp
|
|
|
- * a chance to freeze kseriod thread. Serio events should
|
|
|
- * be pretty rare so we are not concerned about taking
|
|
|
- * performance hit.
|
|
|
- */
|
|
|
- if ((event = serio_get_event())) {
|
|
|
+ while ((event = serio_get_event())) {
|
|
|
|
|
|
switch (event->type) {
|
|
|
case SERIO_REGISTER_PORT:
|
|
@@ -380,10 +374,9 @@ static struct serio *serio_get_pending_child(struct serio *parent)
|
|
|
|
|
|
static int serio_thread(void *nothing)
|
|
|
{
|
|
|
- set_freezable();
|
|
|
do {
|
|
|
serio_handle_event();
|
|
|
- wait_event_freezable(serio_wait,
|
|
|
+ wait_event_interruptible(serio_wait,
|
|
|
kthread_should_stop() || !list_empty(&serio_event_list));
|
|
|
} while (!kthread_should_stop());
|
|
|
|