The patch number 11277 was added via Hans Verkuil <[email protected]>
to http://linuxtv.org/hg/v4l-dvb master development tree.
Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel
If anyone has any objections, please let us know by sending a message to:
Linux Media Mailing List <[email protected]>
------
From: Hans Verkuil <[email protected]>
tvaudio: always call init_timer to prevent rmmod crash.
In the tvaudio_remove function del_timer_sync(&chip->wt) is called.
However, chip->wt isn't always initialized depending on the type of
audio chip. Since del_timer_sync hangs when given an uninitialized timer
we should always initialize it.
Priority: normal
Signed-off-by: Hans Verkuil <[email protected]>
---
linux/drivers/media/video/tvaudio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff -r a9f0d3b5573e -r a909cb991cda linux/drivers/media/video/tvaudio.c
--- a/linux/drivers/media/video/tvaudio.c Wed Mar 18 18:02:36 2009 +0100
+++ b/linux/drivers/media/video/tvaudio.c Thu Mar 19 20:53:32 2009 +0100
@@ -2062,6 +2062,7 @@ static int tvaudio_probe(struct i2c_clie
}
chip->thread = NULL;
+ init_timer(&chip->wt);
if (desc->flags & CHIP_NEED_CHECKMODE) {
if (!desc->getmode || !desc->setmode) {
/* This shouldn't be happen. Warn user, but keep working
@@ -2071,7 +2072,6 @@ static int tvaudio_probe(struct i2c_clie
return 0;
}
/* start async thread */
- init_timer(&chip->wt);
chip->wt.function = chip_thread_wake;
chip->wt.data = (unsigned long)chip;
chip->thread = kthread_run(chip_thread, chip, client->name);
---
Patch is available at:
http://linuxtv.org/hg/v4l-dvb/rev/a909cb991cda784012ec70384ce59a735ef51538
_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits