]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
dvb: don't use flush_scheduled_work()
authorTejun Heo <tj@kernel.org>
Fri, 24 Dec 2010 15:00:17 +0000 (16:00 +0100)
committerTejun Heo <tj@kernel.org>
Fri, 24 Dec 2010 15:00:17 +0000 (16:00 +0100)
flush_scheduled_work() is deprecated and scheduled to be removed.

* Flush the used works directly.

* Replace the deprecated cancel_rearming_delayed_work() +
  flush_scheduled_work() -> cancel_delayed_work_sync().

* Make sure mantis->uart_work isn't running on exit.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: linux-media@vger.kernel.org
drivers/media/dvb/dvb-core/dvb_net.c
drivers/media/dvb/dvb-usb/dvb-usb-remote.c
drivers/media/dvb/mantis/mantis_evm.c
drivers/media/dvb/mantis/mantis_uart.c

index 4df42aaae7f708801663dfc3eea018ee7ed9cfc8..51752a9ef7a4e82c3f1519bf6d488376d5eeb98e 100644 (file)
@@ -1329,7 +1329,8 @@ static int dvb_net_remove_if(struct dvb_net *dvbnet, unsigned long num)
                return -EBUSY;
 
        dvb_net_stop(net);
-       flush_scheduled_work();
+       flush_work_sync(&priv->set_multicast_list_wq);
+       flush_work_sync(&priv->restart_net_feed_wq);
        printk("dvb_net: removed network interface %s\n", net->name);
        unregister_netdev(net);
        dvbnet->state[num]=0;
index 0831469af69f0c423bbafb9654c77802e23be5f0..d5f3d3c7463ef4e0fa0df744db66e8d5f282b51f 100644 (file)
@@ -299,7 +299,6 @@ int dvb_usb_remote_exit(struct dvb_usb_device *d)
 {
        if (d->state & DVB_USB_STATE_REMOTE) {
                cancel_delayed_work_sync(&d->rc_query_work);
-               flush_scheduled_work();
                if (d->props.rc.mode == DVB_RC_LEGACY)
                        input_unregister_device(d->rc_input_dev);
                else
index a7b369a439d67f5b6ca5a1c30f6a3d8c74e6f656..9f73c2cfc9eae18af23eeafdeb08b97c66409571 100644 (file)
@@ -111,7 +111,7 @@ void mantis_evmgr_exit(struct mantis_ca *ca)
        struct mantis_pci *mantis = ca->ca_priv;
 
        dprintk(MANTIS_DEBUG, 1, "Mantis Host I/F Event manager exiting");
-       flush_scheduled_work();
+       flush_work_sync(&ca->hif_evm_work);
        mantis_hif_exit(ca);
        mantis_pcmcia_exit(ca);
 }
index 7d2f2398fa8b609cdd402d4503ac9cb2cabac0d8..97b889e8a341969017480dea347700a8e5255767 100644 (file)
@@ -182,5 +182,6 @@ void mantis_uart_exit(struct mantis_pci *mantis)
 {
        /* disable interrupt */
        mmwrite(mmread(MANTIS_UART_CTL) & 0xffef, MANTIS_UART_CTL);
+       flush_work_sync(&mantis->uart_work);
 }
 EXPORT_SYMBOL_GPL(mantis_uart_exit);