1
linux/drivers/media/video/pvrusb2
Mike Isely e5be15c638 V4L/DVB (7711): pvrusb2: Fix race on module unload
The pvrusb2 driver - for basically forever - was not enforcing a
proper module tear-down.  Kernel threads are used inside the driver
and all must be gone before the module can be safely removed.  This
changeset reimplements a chunk of pvrusb2-context.c to enforce this
correctly.  Unfortunately this is not a simple fix.  The new
implementation also cuts back on kernel thread usage; instead of there
being 1 control thread per instance now it's just 1 control thread
shared by all instances.  (By dropping to a single thread then the
module exit function can block on its shutdown and the thread itself
can monitor and cleanly shut down all of the other instances first.)

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:09:48 -03:00
..
Kconfig V4L/DVB (7685): pvrusb2: Fix really bad typo if DVB config option description 2008-04-24 14:09:46 -03:00
Makefile V4L/DVB (7686): pvrusb2: Fix broken debug interface build 2008-04-24 14:09:46 -03:00
pvrusb2-audio.c V4L/DVB (6698): pvrusb2: Implement signal routing schemes 2008-01-25 19:03:05 -02:00
pvrusb2-audio.h
pvrusb2-context.c V4L/DVB (7711): pvrusb2: Fix race on module unload 2008-04-24 14:09:48 -03:00
pvrusb2-context.h V4L/DVB (7711): pvrusb2: Fix race on module unload 2008-04-24 14:09:48 -03:00
pvrusb2-ctrl.c V4L/DVB (7302): pvrusb2: Improve control validation for enumerations 2008-04-24 14:07:47 -03:00
pvrusb2-ctrl.h
pvrusb2-cx2584x-v4l.c V4L/DVB (6701): pvrusb2: Enable support for "GOTVIEW USB2.0 DVD2" hardware 2008-01-25 19:03:06 -02:00
pvrusb2-cx2584x-v4l.h
pvrusb2-debug.h V4L/DVB (7321): pvrusb2: Rework context handling and initialization 2008-04-24 14:07:48 -03:00
pvrusb2-debugifc.c V4L/DVB (7699): pvrusb2: Implement statistics for USB I/O performance / tracking 2008-04-24 14:09:47 -03:00
pvrusb2-debugifc.h
pvrusb2-devattr.c V4L/DVB (7709): pvrusb2: New device attribute for encoder usage in digital mode 2008-04-24 14:09:48 -03:00
pvrusb2-devattr.h V4L/DVB (7709): pvrusb2: New device attribute for encoder usage in digital mode 2008-04-24 14:09:48 -03:00
pvrusb2-dvb.c V4L/DVB (7708): pvrusb2-dvb: Fix stuck thread on streaming abort 2008-04-24 14:09:48 -03:00
pvrusb2-dvb.h V4L/DVB (7708): pvrusb2-dvb: Fix stuck thread on streaming abort 2008-04-24 14:09:48 -03:00
pvrusb2-eeprom.c V4L/DVB (6696): pvrusb2: Miscellaneous tweaks for controlling tuner type and video standard 2008-01-25 19:03:03 -02:00
pvrusb2-eeprom.h
pvrusb2-encoder.c V4L/DVB (7710): pvrusb2: Implement critical digital streaming quirk for onair devices 2008-04-24 14:09:48 -03:00
pvrusb2-encoder.h V4L/DVB (6691): pvrusb2: Rework pipeline state control 2008-01-25 19:03:01 -02:00
pvrusb2-fx2-cmd.h V4L/DVB (7700): pvrusb2: Make FX2 command codes unsigned constants 2008-04-24 14:09:47 -03:00
pvrusb2-hdw-internal.h V4L/DVB (7710): pvrusb2: Implement critical digital streaming quirk for onair devices 2008-04-24 14:09:48 -03:00
pvrusb2-hdw.c V4L/DVB (7710): pvrusb2: Implement critical digital streaming quirk for onair devices 2008-04-24 14:09:48 -03:00
pvrusb2-hdw.h V4L/DVB (7321): pvrusb2: Rework context handling and initialization 2008-04-24 14:07:48 -03:00
pvrusb2-i2c-chips-v4l2.c
pvrusb2-i2c-cmd-v4l2.c
pvrusb2-i2c-cmd-v4l2.h
pvrusb2-i2c-core.c V4L/DVB (7094): static memory 2008-04-24 13:42:20 -03:00
pvrusb2-i2c-core.h
pvrusb2-io.c V4L/DVB (7699): pvrusb2: Implement statistics for USB I/O performance / tracking 2008-04-24 14:09:47 -03:00
pvrusb2-io.h V4L/DVB (7699): pvrusb2: Implement statistics for USB I/O performance / tracking 2008-04-24 14:09:47 -03:00
pvrusb2-ioread.c NULL noise: drivers/media 2008-03-30 14:18:41 -07:00
pvrusb2-ioread.h
pvrusb2-main.c V4L/DVB (7711): pvrusb2: Fix race on module unload 2008-04-24 14:09:48 -03:00
pvrusb2-std.c V4L/DVB (7317): pvrusb2: Increase buffer size for printing video standard strings 2008-04-24 14:07:48 -03:00
pvrusb2-std.h
pvrusb2-sysfs.c V4L/DVB (7447): pvrusb2: Fix compilation warning 2008-04-24 14:07:55 -03:00
pvrusb2-sysfs.h
pvrusb2-tuner.c
pvrusb2-tuner.h
pvrusb2-util.h
pvrusb2-v4l2.c V4L/DVB (7321): pvrusb2: Rework context handling and initialization 2008-04-24 14:07:48 -03:00
pvrusb2-v4l2.h
pvrusb2-video-v4l.c V4L/DVB (6698): pvrusb2: Implement signal routing schemes 2008-01-25 19:03:05 -02:00
pvrusb2-video-v4l.h
pvrusb2-wm8775.c
pvrusb2-wm8775.h
pvrusb2.h drivers/media/: Spelling fixes 2008-02-03 17:18:59 +02:00