]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/input/serio/serio.c
Freezer: make kernel threads nonfreezable by default
[net-next-2.6.git] / drivers / input / serio / serio.c
index 5895202b972c01ef1f85cda6a42585759fef65d9..372ca493119483006acb3deaae1cbbc7e7b0d920 100644 (file)
@@ -384,6 +384,7 @@ static struct serio *serio_get_pending_child(struct serio *parent)
 
 static int serio_thread(void *nothing)
 {
+       set_freezable();
        do {
                serio_handle_event();
                wait_event_interruptible(serio_wait,
@@ -769,8 +770,10 @@ static int serio_driver_remove(struct device *dev)
 
 static void serio_cleanup(struct serio *serio)
 {
+       mutex_lock(&serio->drv_mutex);
        if (serio->drv && serio->drv->cleanup)
                serio->drv->cleanup(serio);
+       mutex_unlock(&serio->drv_mutex);
 }
 
 static void serio_shutdown(struct device *dev)