diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-07 19:58:04 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-07 19:58:04 -0500 |
commit | 23d69b09b78c4876e134f104a3814c30747c53f1 (patch) | |
tree | 40744de4f4126c21027ce537264524095e0e7979 /drivers/media/video/cx18 | |
parent | e744070fd4ff9d3114277e52d77afa21579adce2 (diff) | |
parent | 569ff2de2e1c8ac67c8df3a7367d46d0d9460a35 (diff) |
Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
* 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (33 commits)
usb: don't use flush_scheduled_work()
speedtch: don't abuse struct delayed_work
media/video: don't use flush_scheduled_work()
media/video: explicitly flush request_module work
ioc4: use static work_struct for ioc4_load_modules()
init: don't call flush_scheduled_work() from do_initcalls()
s390: don't use flush_scheduled_work()
rtc: don't use flush_scheduled_work()
mmc: update workqueue usages
mfd: update workqueue usages
dvb: don't use flush_scheduled_work()
leds-wm8350: don't use flush_scheduled_work()
mISDN: don't use flush_scheduled_work()
macintosh/ams: don't use flush_scheduled_work()
vmwgfx: don't use flush_scheduled_work()
tpm: don't use flush_scheduled_work()
sonypi: don't use flush_scheduled_work()
hvsi: don't use flush_scheduled_work()
xen: don't use flush_scheduled_work()
gdrom: don't use flush_scheduled_work()
...
Fixed up trivial conflict in drivers/media/video/bt8xx/bttv-input.c
as per Tejun.
Diffstat (limited to 'drivers/media/video/cx18')
-rw-r--r-- | drivers/media/video/cx18/cx18-driver.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/media/video/cx18/cx18-driver.c b/drivers/media/video/cx18/cx18-driver.c index 676e5bef89eb..133ec2bac180 100644 --- a/drivers/media/video/cx18/cx18-driver.c +++ b/drivers/media/video/cx18/cx18-driver.c | |||
@@ -267,8 +267,14 @@ static void request_modules(struct cx18 *dev) | |||
267 | INIT_WORK(&dev->request_module_wk, request_module_async); | 267 | INIT_WORK(&dev->request_module_wk, request_module_async); |
268 | schedule_work(&dev->request_module_wk); | 268 | schedule_work(&dev->request_module_wk); |
269 | } | 269 | } |
270 | |||
271 | static void flush_request_modules(struct cx18 *dev) | ||
272 | { | ||
273 | flush_work_sync(&dev->request_module_wk); | ||
274 | } | ||
270 | #else | 275 | #else |
271 | #define request_modules(dev) | 276 | #define request_modules(dev) |
277 | #define flush_request_modules(dev) | ||
272 | #endif /* CONFIG_MODULES */ | 278 | #endif /* CONFIG_MODULES */ |
273 | 279 | ||
274 | /* Generic utility functions */ | 280 | /* Generic utility functions */ |
@@ -1233,6 +1239,8 @@ static void cx18_remove(struct pci_dev *pci_dev) | |||
1233 | 1239 | ||
1234 | CX18_DEBUG_INFO("Removing Card\n"); | 1240 | CX18_DEBUG_INFO("Removing Card\n"); |
1235 | 1241 | ||
1242 | flush_request_modules(cx); | ||
1243 | |||
1236 | /* Stop all captures */ | 1244 | /* Stop all captures */ |
1237 | CX18_DEBUG_INFO("Stopping all streams\n"); | 1245 | CX18_DEBUG_INFO("Stopping all streams\n"); |
1238 | if (atomic_read(&cx->tot_capturing) > 0) | 1246 | if (atomic_read(&cx->tot_capturing) > 0) |