diff options
| author | Robert Hancock <hancockr@shaw.ca> | 2007-01-07 06:12:19 -0500 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-01-15 13:25:31 -0500 |
| commit | a96afb3e9428f2e7463344f12dbc85faf08e2e09 (patch) | |
| tree | a8219ad5621efbeea27c5bae53fe88803f5b787d | |
| parent | 35d6270b806562b37279d3970fa477aaeb372829 (diff) | |
V4L/DVB (5021): Cx88xx: Fix lockup on suspend
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>
| -rw-r--r-- | drivers/media/video/cx88/cx88-tvaudio.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88-tvaudio.c b/drivers/media/video/cx88/cx88-tvaudio.c index 3482e0114d43..2bd84d351a18 100644 --- a/drivers/media/video/cx88/cx88-tvaudio.c +++ b/drivers/media/video/cx88/cx88-tvaudio.c | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | #include <linux/module.h> | 38 | #include <linux/module.h> |
| 39 | #include <linux/moduleparam.h> | 39 | #include <linux/moduleparam.h> |
| 40 | #include <linux/errno.h> | 40 | #include <linux/errno.h> |
| 41 | #include <linux/freezer.h> | ||
| 41 | #include <linux/kernel.h> | 42 | #include <linux/kernel.h> |
| 42 | #include <linux/slab.h> | 43 | #include <linux/slab.h> |
| 43 | #include <linux/mm.h> | 44 | #include <linux/mm.h> |
| @@ -961,6 +962,7 @@ int cx88_audio_thread(void *data) | |||
| 961 | msleep_interruptible(1000); | 962 | msleep_interruptible(1000); |
| 962 | if (kthread_should_stop()) | 963 | if (kthread_should_stop()) |
| 963 | break; | 964 | break; |
| 965 | try_to_freeze(); | ||
| 964 | 966 | ||
| 965 | /* just monitor the audio status for now ... */ | 967 | /* just monitor the audio status for now ... */ |
| 966 | memset(&t, 0, sizeof(t)); | 968 | memset(&t, 0, sizeof(t)); |
