V4L/DVB (5021): Cx88xx: Fix lockup on suspend
authorRobert Hancock <hancockr@shaw.ca>
Sun, 7 Jan 2007 11:12:19 +0000 (08:12 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Mon, 15 Jan 2007 18:25:31 +0000 (16:25 -0200)
Suspending with the cx88xx module loaded causes the system to lock up
because the cx88_audio_thread kthread was missing a try_to_freeze()
call, which caused it to go into a tight loop and result in softlockup
when suspending. Fix that.

Signed-off-by: Robert Hancock <hancockr@shaw.ca>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/cx88/cx88-tvaudio.c

index 3482e0114d43ec4cba7bbedf643824a26c9bcd20..2bd84d351a18eb3bf7e9f2301583ed04a004ed16 100644 (file)
@@ -38,6 +38,7 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/errno.h>
+#include <linux/freezer.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/mm.h>
@@ -961,6 +962,7 @@ int cx88_audio_thread(void *data)
                msleep_interruptible(1000);
                if (kthread_should_stop())
                        break;
+               try_to_freeze();
 
                /* just monitor the audio status for now ... */
                memset(&t, 0, sizeof(t));