Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media/video: don't use flush_scheduled_work()

This patch converts the remaining users of flush_scheduled_work() in
media/video.

* bttv-input.c and cx23885-input.c don't use workqueue at all. No
need to flush.

* Make omap24xxcam.c and saa7134-empress.c flush the used work
directly.

* In fd_defio.c, replace cancel_delayed_work() +
flush_scheduled_work() with cancel_delayed_work_sync(). While at
it, replace the deprecated cancel_rearming_delayed_work() with
cancel_delayed_work_sync().

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>

Tejun Heo 8c71778c 707bcf32

+5 -10
+1 -4
drivers/media/video/bt8xx/bttv-input.c
··· 229 229 230 230 static void bttv_ir_stop(struct bttv *btv) 231 231 { 232 - if (btv->remote->polling) { 232 + if (btv->remote->polling) 233 233 del_timer_sync(&btv->remote->timer); 234 - flush_scheduled_work(); 235 - } 236 234 237 235 if (btv->remote->rc5_gpio) { 238 236 u32 gpio; 239 237 240 238 del_timer_sync(&btv->remote->timer_end); 241 - flush_scheduled_work(); 242 239 243 240 gpio = bttv_gpio_read(&btv->c); 244 241 bttv_gpio_write(&btv->c, gpio & ~(1 << 4));
-2
drivers/media/video/cx23885/cx23885-input.c
··· 230 230 v4l2_subdev_call(dev->sd_ir, ir, rx_s_parameters, &params); 231 231 v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params); 232 232 } 233 - 234 - flush_scheduled_work(); 235 233 } 236 234 237 235 static void cx23885_input_ir_close(void *priv)
+3 -3
drivers/media/video/omap24xxcam.c
··· 1198 1198 1199 1199 atomic_inc(&cam->reset_disable); 1200 1200 1201 - flush_scheduled_work(); 1201 + flush_work_sync(&cam->sensor_reset_work); 1202 1202 1203 1203 rval = videobuf_streamoff(q); 1204 1204 if (!rval) { ··· 1512 1512 1513 1513 atomic_inc(&cam->reset_disable); 1514 1514 1515 - flush_scheduled_work(); 1515 + flush_work_sync(&cam->sensor_reset_work); 1516 1516 1517 1517 /* stop streaming capture */ 1518 1518 videobuf_streamoff(&fh->vbq); ··· 1536 1536 * not be scheduled anymore since streaming is already 1537 1537 * disabled.) 1538 1538 */ 1539 - flush_scheduled_work(); 1539 + flush_work_sync(&cam->sensor_reset_work); 1540 1540 1541 1541 mutex_lock(&cam->mutex); 1542 1542 if (atomic_dec_return(&cam->users) == 0) {
+1 -1
drivers/media/video/saa7134/saa7134-empress.c
··· 553 553 554 554 if (NULL == dev->empress_dev) 555 555 return 0; 556 - flush_scheduled_work(); 556 + flush_work_sync(&dev->empress_workqueue); 557 557 video_unregister_device(dev->empress_dev); 558 558 dev->empress_dev = NULL; 559 559 return 0;