Browse Source

workqueue: deprecate flush[_delayed]_work_sync()

flush[_delayed]_work_sync() are now spurious.  Mark them deprecated
and convert all users to flush[_delayed]_work().

If you're cc'd and wondering what's going on: Now all workqueues are
non-reentrant and the regular flushes guarantee that the work item is
not pending or running on any CPU on return, so there's no reason to
use the sync flushes at all and they're going away.

This patch doesn't make any functional difference.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Mattia Dongili <malattia@linux.it>
Cc: Kent Yoder <key@linux.vnet.ibm.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: Bryan Wu <bryan.wu@canonical.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-wireless@vger.kernel.org
Cc: Anton Vorontsov <cbou@mail.ru>
Cc: Sangbeom Kim <sbkim73@samsung.com>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Eric Van Hensbergen <ericvh@gmail.com>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Cc: Petr Vandrovec <petr@vandrovec.name>
Cc: Mark Fasheh <mfasheh@suse.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Avi Kivity <avi@redhat.com>
imx_3.10.17_1.0.0_ga
Tejun Heo 8 years ago
parent
commit
43829731dd
81 changed files with 111 additions and 111 deletions
  1. +2
    -2
      arch/arm/mach-pxa/sharpsl_pm.c
  2. +1
    -1
      arch/arm/plat-omap/mailbox.c
  3. +1
    -1
      arch/sh/drivers/push-switch.c
  4. +2
    -2
      drivers/block/xen-blkfront.c
  5. +1
    -1
      drivers/cdrom/gdrom.c
  6. +1
    -1
      drivers/char/sonypi.c
  7. +2
    -2
      drivers/char/tpm/tpm.c
  8. +1
    -1
      drivers/gpu/drm/exynos/exynos_drm_g2d.c
  9. +1
    -1
      drivers/gpu/drm/nouveau/nouveau_gpio.c
  10. +1
    -1
      drivers/gpu/drm/radeon/radeon_irq_kms.c
  11. +1
    -1
      drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
  12. +1
    -1
      drivers/hid/hid-picolcd.c
  13. +1
    -1
      drivers/input/touchscreen/wm831x-ts.c
  14. +2
    -2
      drivers/isdn/mISDN/hwchannel.c
  15. +3
    -3
      drivers/leds/leds-lm3533.c
  16. +1
    -1
      drivers/leds/leds-lp8788.c
  17. +1
    -1
      drivers/leds/leds-wm8350.c
  18. +1
    -1
      drivers/macintosh/ams/ams-core.c
  19. +1
    -1
      drivers/md/dm-mpath.c
  20. +1
    -1
      drivers/md/dm-raid1.c
  21. +1
    -1
      drivers/md/dm-stripe.c
  22. +2
    -2
      drivers/media/dvb/dvb-core/dvb_net.c
  23. +1
    -1
      drivers/media/dvb/mantis/mantis_evm.c
  24. +1
    -1
      drivers/media/dvb/mantis/mantis_uart.c
  25. +1
    -1
      drivers/media/video/bt8xx/bttv-driver.c
  26. +1
    -1
      drivers/media/video/cx18/cx18-driver.c
  27. +1
    -1
      drivers/media/video/cx231xx/cx231xx-cards.c
  28. +3
    -3
      drivers/media/video/cx23885/cx23885-input.c
  29. +1
    -1
      drivers/media/video/cx88/cx88-mpeg.c
  30. +1
    -1
      drivers/media/video/em28xx/em28xx-cards.c
  31. +3
    -3
      drivers/media/video/omap24xxcam.c
  32. +1
    -1
      drivers/media/video/saa7134/saa7134-core.c
  33. +1
    -1
      drivers/media/video/saa7134/saa7134-empress.c
  34. +1
    -1
      drivers/media/video/tm6000/tm6000-cards.c
  35. +2
    -2
      drivers/mfd/menelaus.c
  36. +1
    -1
      drivers/misc/ioc4.c
  37. +2
    -2
      drivers/mtd/mtdoops.c
  38. +1
    -1
      drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
  39. +1
    -1
      drivers/net/ethernet/neterion/vxge/vxge-main.c
  40. +1
    -1
      drivers/net/ethernet/sun/cassini.c
  41. +1
    -1
      drivers/net/ethernet/sun/niu.c
  42. +2
    -2
      drivers/net/wireless/hostap/hostap_ap.c
  43. +5
    -5
      drivers/net/wireless/hostap/hostap_hw.c
  44. +1
    -1
      drivers/power/collie_battery.c
  45. +1
    -1
      drivers/power/tosa_battery.c
  46. +1
    -1
      drivers/power/wm97xx_battery.c
  47. +1
    -1
      drivers/power/z2_battery.c
  48. +1
    -1
      drivers/regulator/core.c
  49. +2
    -2
      drivers/scsi/arcmsr/arcmsr_hba.c
  50. +1
    -1
      drivers/scsi/ipr.c
  51. +1
    -1
      drivers/scsi/pmcraid.c
  52. +1
    -1
      drivers/scsi/qla2xxx/qla_target.c
  53. +1
    -1
      drivers/tty/hvc/hvsi.c
  54. +1
    -1
      drivers/tty/ipwireless/hardware.c
  55. +2
    -2
      drivers/tty/ipwireless/network.c
  56. +1
    -1
      drivers/tty/serial/kgdboc.c
  57. +1
    -1
      drivers/tty/serial/omap-serial.c
  58. +3
    -3
      drivers/tty/tty_ldisc.c
  59. +1
    -1
      drivers/usb/atm/speedtch.c
  60. +1
    -1
      drivers/usb/atm/ueagle-atm.c
  61. +1
    -1
      drivers/usb/gadget/u_ether.c
  62. +1
    -1
      drivers/usb/host/ohci-hcd.c
  63. +1
    -1
      drivers/usb/otg/isp1301_omap.c
  64. +1
    -1
      fs/affs/super.c
  65. +1
    -1
      fs/gfs2/lock_dlm.c
  66. +1
    -1
      fs/gfs2/super.c
  67. +1
    -1
      fs/hfs/inode.c
  68. +3
    -3
      fs/ncpfs/inode.c
  69. +1
    -1
      fs/ocfs2/cluster/quorum.c
  70. +1
    -1
      fs/xfs/xfs_super.c
  71. +1
    -1
      fs/xfs/xfs_sync.c
  72. +2
    -2
      include/linux/workqueue.h
  73. +1
    -1
      net/9p/trans_fd.c
  74. +1
    -1
      net/dsa/dsa.c
  75. +1
    -1
      sound/i2c/other/ak4113.c
  76. +1
    -1
      sound/i2c/other/ak4114.c
  77. +4
    -4
      sound/pci/oxygen/oxygen_lib.c
  78. +1
    -1
      sound/soc/codecs/wm8350.c
  79. +1
    -1
      sound/soc/codecs/wm8753.c
  80. +3
    -3
      sound/soc/soc-core.c
  81. +1
    -1
      virt/kvm/eventfd.c

+ 2
- 2
arch/arm/mach-pxa/sharpsl_pm.c View File

@ -579,8 +579,8 @@ static int sharpsl_ac_check(void)
static int sharpsl_pm_suspend(struct platform_device *pdev, pm_message_t state)
{
sharpsl_pm.flags |= SHARPSL_SUSPENDED;
flush_delayed_work_sync(&toggle_charger);
flush_delayed_work_sync(&sharpsl_bat);
flush_delayed_work(&toggle_charger);
flush_delayed_work(&sharpsl_bat);
if (sharpsl_pm.charge_mode == CHRG_ON)
sharpsl_pm.flags |= SHARPSL_DO_OFFLINE_CHRG;


+ 1
- 1
arch/arm/plat-omap/mailbox.c View File

@ -310,7 +310,7 @@ static void omap_mbox_fini(struct omap_mbox *mbox)
omap_mbox_disable_irq(mbox, IRQ_RX);
free_irq(mbox->irq, mbox);
tasklet_kill(&mbox->txq->tasklet);
flush_work_sync(&mbox->rxq->work);
flush_work(&mbox->rxq->work);
mbox_queue_free(mbox->txq);
mbox_queue_free(mbox->rxq);
}


+ 1
- 1
arch/sh/drivers/push-switch.c View File

@ -107,7 +107,7 @@ static int switch_drv_remove(struct platform_device *pdev)
device_remove_file(&pdev->dev, &dev_attr_switch);
platform_set_drvdata(pdev, NULL);
flush_work_sync(&psw->work);
flush_work(&psw->work);
del_timer_sync(&psw->debounce);
free_irq(irq, pdev);


+ 2
- 2
drivers/block/xen-blkfront.c View File

@ -670,7 +670,7 @@ static void xlvbd_release_gendisk(struct blkfront_info *info)
spin_unlock_irqrestore(&info->io_lock, flags);
/* Flush gnttab callback work. Must be done with no locks held. */
flush_work_sync(&info->work);
flush_work(&info->work);
del_gendisk(info->gd);
@ -719,7 +719,7 @@ static void blkif_free(struct blkfront_info *info, int suspend)
spin_unlock_irq(&info->io_lock);
/* Flush gnttab callback work. Must be done with no locks held. */
flush_work_sync(&info->work);
flush_work(&info->work);
/* Free resources associated with old device channel. */
if (info->ring_ref != GRANT_INVALID_REF) {


+ 1
- 1
drivers/cdrom/gdrom.c View File

@ -840,7 +840,7 @@ probe_fail_no_mem:
static int __devexit remove_gdrom(struct platform_device *devptr)
{
flush_work_sync(&work);
flush_work(&work);
blk_cleanup_queue(gd.gdrom_rq);
free_irq(HW_EVENT_GDROM_CMD, &gd);
free_irq(HW_EVENT_GDROM_DMA, &gd);


+ 1
- 1
drivers/char/sonypi.c View File

@ -1433,7 +1433,7 @@ static int __devexit sonypi_remove(struct platform_device *dev)
sonypi_disable();
synchronize_irq(sonypi_device.irq);
flush_work_sync(&sonypi_device.input_work);
flush_work(&sonypi_device.input_work);
if (useinput) {
input_unregister_device(sonypi_device.input_key_dev);


+ 2
- 2
drivers/char/tpm/tpm.c View File

@ -1172,7 +1172,7 @@ int tpm_release(struct inode *inode, struct file *file)
struct tpm_chip *chip = file->private_data;
del_singleshot_timer_sync(&chip->user_read_timer);
flush_work_sync(&chip->work);
flush_work(&chip->work);
file->private_data = NULL;
atomic_set(&chip->data_pending, 0);
kfree(chip->data_buffer);
@ -1225,7 +1225,7 @@ ssize_t tpm_read(struct file *file, char __user *buf,
int rc;
del_singleshot_timer_sync(&chip->user_read_timer);
flush_work_sync(&chip->work);
flush_work(&chip->work);
ret_size = atomic_read(&chip->data_pending);
atomic_set(&chip->data_pending, 0);
if (ret_size > 0) { /* relay data */


+ 1
- 1
drivers/gpu/drm/exynos/exynos_drm_g2d.c View File

@ -908,7 +908,7 @@ static int g2d_suspend(struct device *dev)
/* FIXME: good range? */
usleep_range(500, 1000);
flush_work_sync(&g2d->runqueue_work);
flush_work(&g2d->runqueue_work);
return 0;
}


+ 1
- 1
drivers/gpu/drm/nouveau/nouveau_gpio.c View File

@ -302,7 +302,7 @@ nouveau_gpio_isr_del(struct drm_device *dev, int idx, u8 tag, u8 line,
spin_unlock_irqrestore(&pgpio->lock, flags);
list_for_each_entry_safe(isr, tmp, &tofree, head) {
flush_work_sync(&isr->work);
flush_work(&isr->work);
kfree(isr);
}
}


+ 1
- 1
drivers/gpu/drm/radeon/radeon_irq_kms.c View File

@ -277,7 +277,7 @@ void radeon_irq_kms_fini(struct radeon_device *rdev)
if (rdev->msi_enabled)
pci_disable_msi(rdev->pdev);
}
flush_work_sync(&rdev->hotplug_work);
flush_work(&rdev->hotplug_work);
}
/**


+ 1
- 1
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c View File

@ -594,7 +594,7 @@ int vmw_fb_off(struct vmw_private *vmw_priv)
par->dirty.active = false;
spin_unlock_irqrestore(&par->dirty.lock, flags);
flush_delayed_work_sync(&info->deferred_work);
flush_delayed_work(&info->deferred_work);
par->bo_ptr = NULL;
ttm_bo_kunmap(&par->map);


+ 1
- 1
drivers/hid/hid-picolcd.c View File

@ -2737,7 +2737,7 @@ static void __exit picolcd_exit(void)
{
hid_unregister_driver(&picolcd_driver);
#ifdef CONFIG_HID_PICOLCD_FB
flush_work_sync(&picolcd_fb_cleanup);
flush_work(&picolcd_fb_cleanup);
WARN_ON(fb_pending);
#endif
}


+ 1
- 1
drivers/input/touchscreen/wm831x-ts.c View File

@ -221,7 +221,7 @@ static void wm831x_ts_input_close(struct input_dev *idev)
synchronize_irq(wm831x_ts->pd_irq);
/* Make sure the IRQ completion work is quiesced */
flush_work_sync(&wm831x_ts->pd_data_work);
flush_work(&wm831x_ts->pd_data_work);
/* If we ended up with the pen down then make sure we revert back
* to pen detection state for the next time we start up.


+ 2
- 2
drivers/isdn/mISDN/hwchannel.c View File

@ -116,7 +116,7 @@ mISDN_freedchannel(struct dchannel *ch)
}
skb_queue_purge(&ch->squeue);
skb_queue_purge(&ch->rqueue);
flush_work_sync(&ch->workq);
flush_work(&ch->workq);
return 0;
}
EXPORT_SYMBOL(mISDN_freedchannel);
@ -157,7 +157,7 @@ mISDN_freebchannel(struct bchannel *ch)
mISDN_clear_bchannel(ch);
skb_queue_purge(&ch->rqueue);
ch->rcount = 0;
flush_work_sync(&ch->workq);
flush_work(&ch->workq);
return 0;
}
EXPORT_SYMBOL(mISDN_freebchannel);


+ 3
- 3
drivers/leds/leds-lm3533.c View File

@ -737,7 +737,7 @@ err_sysfs_remove:
sysfs_remove_group(&led->cdev.dev->kobj, &lm3533_led_attribute_group);
err_unregister:
led_classdev_unregister(&led->cdev);
flush_work_sync(&led->work);
flush_work(&led->work);
return ret;
}
@ -751,7 +751,7 @@ static int __devexit lm3533_led_remove(struct platform_device *pdev)
lm3533_ctrlbank_disable(&led->cb);
sysfs_remove_group(&led->cdev.dev->kobj, &lm3533_led_attribute_group);
led_classdev_unregister(&led->cdev);
flush_work_sync(&led->work);
flush_work(&led->work);
return 0;
}
@ -765,7 +765,7 @@ static void lm3533_led_shutdown(struct platform_device *pdev)
lm3533_ctrlbank_disable(&led->cb);
lm3533_led_set(&led->cdev, LED_OFF); /* disable blink */
flush_work_sync(&led->work);
flush_work(&led->work);
}
static struct platform_driver lm3533_led_driver = {


+ 1
- 1
drivers/leds/leds-lp8788.c View File

@ -172,7 +172,7 @@ static int __devexit lp8788_led_remove(struct platform_device *pdev)
struct lp8788_led *led = platform_get_drvdata(pdev);
led_classdev_unregister(&led->led_dev);
flush_work_sync(&led->work);
flush_work(&led->work);
return 0;
}


+ 1
- 1
drivers/leds/leds-wm8350.c View File

@ -275,7 +275,7 @@ static int wm8350_led_remove(struct platform_device *pdev)
struct wm8350_led *led = platform_get_drvdata(pdev);
led_classdev_unregister(&led->cdev);
flush_work_sync(&led->work);
flush_work(&led->work);
wm8350_led_disable(led);
regulator_put(led->dcdc);
regulator_put(led->isink);


+ 1
- 1
drivers/macintosh/ams/ams-core.c View File

@ -226,7 +226,7 @@ void ams_sensor_detach(void)
* We do this after ams_info.exit(), because an interrupt might
* have arrived before disabling them.
*/
flush_work_sync(&ams_info.worker);
flush_work(&ams_info.worker);
/* Remove device */
of_device_unregister(ams_info.of_dev);


+ 1
- 1
drivers/md/dm-mpath.c View File

@ -944,7 +944,7 @@ static void flush_multipath_work(struct multipath *m)
flush_workqueue(kmpath_handlerd);
multipath_wait_for_pg_init_completion(m);
flush_workqueue(kmultipathd);
flush_work_sync(&m->trigger_event);
flush_work(&m->trigger_event);
}
static void multipath_dtr(struct dm_target *ti)


+ 1
- 1
drivers/md/dm-raid1.c View File

@ -1146,7 +1146,7 @@ static void mirror_dtr(struct dm_target *ti)
del_timer_sync(&ms->timer);
flush_workqueue(ms->kmirrord_wq);
flush_work_sync(&ms->trigger_event);
flush_work(&ms->trigger_event);
dm_kcopyd_client_destroy(ms->kcopyd_client);
destroy_workqueue(ms->kmirrord_wq);
free_context(ms, ti, ms->nr_mirrors);


+ 1
- 1
drivers/md/dm-stripe.c View File

@ -199,7 +199,7 @@ static void stripe_dtr(struct dm_target *ti)
for (i = 0; i < sc->stripes; i++)
dm_put_device(ti, sc->stripe[i].dev);
flush_work_sync(&sc->trigger_event);
flush_work(&sc->trigger_event);
kfree(sc);
}


+ 2
- 2
drivers/media/dvb/dvb-core/dvb_net.c View File

@ -1329,8 +1329,8 @@ static int dvb_net_remove_if(struct dvb_net *dvbnet, unsigned long num)
return -EBUSY;
dvb_net_stop(net);
flush_work_sync(&priv->set_multicast_list_wq);
flush_work_sync(&priv->restart_net_feed_wq);
flush_work(&priv->set_multicast_list_wq);
flush_work(&priv->restart_net_feed_wq);
printk("dvb_net: removed network interface %s\n", net->name);
unregister_netdev(net);
dvbnet->state[num]=0;


+ 1
- 1
drivers/media/dvb/mantis/mantis_evm.c View 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_work_sync(&ca->hif_evm_work);
flush_work(&ca->hif_evm_work);
mantis_hif_exit(ca);
mantis_pcmcia_exit(ca);
}

+ 1
- 1
drivers/media/dvb/mantis/mantis_uart.c View File

@ -183,6 +183,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);
flush_work(&mantis->uart_work);
}
EXPORT_SYMBOL_GPL(mantis_uart_exit);

+ 1
- 1
drivers/media/video/bt8xx/bttv-driver.c View File

@ -196,7 +196,7 @@ static void request_modules(struct bttv *dev)
static void flush_request_modules(struct bttv *dev)
{
flush_work_sync(&dev->request_module_wk);
flush_work(&dev->request_module_wk);
}
#else
#define request_modules(dev)


+ 1
- 1
drivers/media/video/cx18/cx18-driver.c View File

@ -272,7 +272,7 @@ static void request_modules(struct cx18 *dev)
static void flush_request_modules(struct cx18 *dev)
{
flush_work_sync(&dev->request_module_wk);
flush_work(&dev->request_module_wk);
}
#else
#define request_modules(dev)


+ 1
- 1
drivers/media/video/cx231xx/cx231xx-cards.c View File

@ -1002,7 +1002,7 @@ static void request_modules(struct cx231xx *dev)
static void flush_request_modules(struct cx231xx *dev)
{
flush_work_sync(&dev->request_module_wk);
flush_work(&dev->request_module_wk);
}
#else
#define request_modules(dev)


+ 3
- 3
drivers/media/video/cx23885/cx23885-input.c View File

@ -231,9 +231,9 @@ static void cx23885_input_ir_stop(struct cx23885_dev *dev)
v4l2_subdev_call(dev->sd_ir, ir, rx_s_parameters, &params);
v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
}
flush_work_sync(&dev->cx25840_work);
flush_work_sync(&dev->ir_rx_work);
flush_work_sync(&dev->ir_tx_work);
flush_work(&dev->cx25840_work);
flush_work(&dev->ir_rx_work);
flush_work(&dev->ir_tx_work);
}
static void cx23885_input_ir_close(struct rc_dev *rc)


+ 1
- 1
drivers/media/video/cx88/cx88-mpeg.c View File

@ -70,7 +70,7 @@ static void request_modules(struct cx8802_dev *dev)
static void flush_request_modules(struct cx8802_dev *dev)
{
flush_work_sync(&dev->request_module_wk);
flush_work(&dev->request_module_wk);
}
#else
#define request_modules(dev)


+ 1
- 1
drivers/media/video/em28xx/em28xx-cards.c View File

@ -2900,7 +2900,7 @@ static void request_modules(struct em28xx *dev)
static void flush_request_modules(struct em28xx *dev)
{
flush_work_sync(&dev->request_module_wk);
flush_work(&dev->request_module_wk);
}
#else
#define request_modules(dev)


+ 3
- 3
drivers/media/video/omap24xxcam.c View File

@ -1198,7 +1198,7 @@ static int vidioc_streamoff(struct file *file, void *fh, enum v4l2_buf_type i)
atomic_inc(&cam->reset_disable);
flush_work_sync(&cam->sensor_reset_work);
flush_work(&cam->sensor_reset_work);
rval = videobuf_streamoff(q);
if (!rval) {
@ -1512,7 +1512,7 @@ static int omap24xxcam_release(struct file *file)
atomic_inc(&cam->reset_disable);
flush_work_sync(&cam->sensor_reset_work);
flush_work(&cam->sensor_reset_work);
/* stop streaming capture */
videobuf_streamoff(&fh->vbq);
@ -1536,7 +1536,7 @@ static int omap24xxcam_release(struct file *file)
* not be scheduled anymore since streaming is already
* disabled.)
*/
flush_work_sync(&cam->sensor_reset_work);
flush_work(&cam->sensor_reset_work);
mutex_lock(&cam->mutex);
if (atomic_dec_return(&cam->users) == 0) {


+ 1
- 1
drivers/media/video/saa7134/saa7134-core.c View File

@ -170,7 +170,7 @@ static void request_submodules(struct saa7134_dev *dev)
static void flush_request_submodules(struct saa7134_dev *dev)
{
flush_work_sync(&dev->request_module_wk);
flush_work(&dev->request_module_wk);
}
#else


+ 1
- 1
drivers/media/video/saa7134/saa7134-empress.c View File

@ -556,7 +556,7 @@ static int empress_fini(struct saa7134_dev *dev)
if (NULL == dev->empress_dev)
return 0;
flush_work_sync(&dev->empress_workqueue);
flush_work(&dev->empress_workqueue);
video_unregister_device(dev->empress_dev);
dev->empress_dev = NULL;
return 0;


+ 1
- 1
drivers/media/video/tm6000/tm6000-cards.c View File

@ -1074,7 +1074,7 @@ static void request_modules(struct tm6000_core *dev)
static void flush_request_modules(struct tm6000_core *dev)
{
flush_work_sync(&dev->request_module_wk);
flush_work(&dev->request_module_wk);
}
#else
#define request_modules(dev)


+ 2
- 2
drivers/mfd/menelaus.c View File

@ -1259,7 +1259,7 @@ static int menelaus_probe(struct i2c_client *client,
return 0;
fail2:
free_irq(client->irq, menelaus);
flush_work_sync(&menelaus->work);
flush_work(&menelaus->work);
fail1:
kfree(menelaus);
return err;
@ -1270,7 +1270,7 @@ static int __exit menelaus_remove(struct i2c_client *client)
struct menelaus_chip *menelaus = i2c_get_clientdata(client);
free_irq(client->irq, menelaus);
flush_work_sync(&menelaus->work);
flush_work(&menelaus->work);
kfree(menelaus);
the_menelaus = NULL;
return 0;


+ 1
- 1
drivers/misc/ioc4.c View File

@ -487,7 +487,7 @@ static void __exit
ioc4_exit(void)
{
/* Ensure ioc4_load_modules() has completed before exiting */
flush_work_sync(&ioc4_load_modules_work);
flush_work(&ioc4_load_modules_work);
pci_unregister_driver(&ioc4_driver);
}


+ 2
- 2
drivers/mtd/mtdoops.c View File

@ -387,8 +387,8 @@ static void mtdoops_notify_remove(struct mtd_info *mtd)
printk(KERN_WARNING "mtdoops: could not unregister kmsg_dumper\n");
cxt->mtd = NULL;
flush_work_sync(&cxt->work_erase);
flush_work_sync(&cxt->work_write);
flush_work(&cxt->work_erase);
flush_work(&cxt->work_write);
}


+ 1
- 1
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c View File

@ -1394,7 +1394,7 @@ static int offload_close(struct t3cdev *tdev)
sysfs_remove_group(&tdev->lldev->dev.kobj, &offload_attr_group);
/* Flush work scheduled while releasing TIDs */
flush_work_sync(&td->tid_release_task);
flush_work(&td->tid_release_task);
tdev->lldev = NULL;
cxgb3_set_dummy_ops(tdev);


+ 1
- 1
drivers/net/ethernet/neterion/vxge/vxge-main.c View File

@ -3521,7 +3521,7 @@ static void vxge_device_unregister(struct __vxge_hw_device *hldev)
strncpy(buf, dev->name, IFNAMSIZ);
flush_work_sync(&vdev->reset_task);
flush_work(&vdev->reset_task);
/* in 2.6 will call stop() if device is up */
unregister_netdev(dev);


+ 1
- 1
drivers/net/ethernet/sun/cassini.c View File

@ -3890,7 +3890,7 @@ static int cas_change_mtu(struct net_device *dev, int new_mtu)
schedule_work(&cp->reset_task);
#endif
flush_work_sync(&cp->reset_task);
flush_work(&cp->reset_task);
return 0;
}


+ 1
- 1
drivers/net/ethernet/sun/niu.c View File

@ -9932,7 +9932,7 @@ static int niu_suspend(struct pci_dev *pdev, pm_message_t state)
if (!netif_running(dev))
return 0;
flush_work_sync(&np->reset_task);
flush_work(&np->reset_task);
niu_netif_stop(np);
del_timer_sync(&np->timer);


+ 2
- 2
drivers/net/wireless/hostap/hostap_ap.c View File

@ -860,10 +860,10 @@ void hostap_free_data(struct ap_data *ap)
return;
}
flush_work_sync(&ap->add_sta_proc_queue);
flush_work(&ap->add_sta_proc_queue);
#ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT
flush_work_sync(&ap->wds_oper_queue);
flush_work(&ap->wds_oper_queue);
if (ap->crypt)
ap->crypt->deinit(ap->crypt_priv);
ap->crypt = ap->crypt_priv = NULL;


+ 5
- 5
drivers/net/wireless/hostap/hostap_hw.c View File

@ -3311,13 +3311,13 @@ static void prism2_free_local_data(struct net_device *dev)
unregister_netdev(local->dev);
flush_work_sync(&local->reset_queue);
flush_work_sync(&local->set_multicast_list_queue);
flush_work_sync(&local->set_tim_queue);
flush_work(&local->reset_queue);
flush_work(&local->set_multicast_list_queue);
flush_work(&local->set_tim_queue);
#ifndef PRISM2_NO_STATION_MODES
flush_work_sync(&local->info_queue);
flush_work(&local->info_queue);
#endif
flush_work_sync(&local->comms_qual_update);
flush_work(&local->comms_qual_update);
lib80211_crypt_info_free(&local->crypt_info);


+ 1
- 1
drivers/power/collie_battery.c View File

@ -290,7 +290,7 @@ static struct gpio collie_batt_gpios[] = {
static int collie_bat_suspend(struct ucb1x00_dev *dev, pm_message_t state)
{
/* flush all pending status updates */
flush_work_sync(&bat_work);
flush_work(&bat_work);
return 0;
}


+ 1
- 1
drivers/power/tosa_battery.c View File

@ -327,7 +327,7 @@ static struct gpio tosa_bat_gpios[] = {
static int tosa_bat_suspend(struct platform_device *dev, pm_message_t state)
{
/* flush all pending status updates */
flush_work_sync(&bat_work);
flush_work(&bat_work);
return 0;
}


+ 1
- 1
drivers/power/wm97xx_battery.c View File

@ -146,7 +146,7 @@ static irqreturn_t wm97xx_chrg_irq(int irq, void *data)
#ifdef CONFIG_PM
static int wm97xx_bat_suspend(struct device *dev)
{
flush_work_sync(&bat_work);
flush_work(&bat_work);
return 0;
}


+ 1
- 1
drivers/power/z2_battery.c View File

@ -276,7 +276,7 @@ static int z2_batt_suspend(struct device *dev)
struct i2c_client *client = to_i2c_client(dev);
struct z2_charger *charger = i2c_get_clientdata(client);
flush_work_sync(&charger->bat_work);
flush_work(&charger->bat_work);
return 0;
}


+ 1
- 1
drivers/regulator/core.c View File

@ -3335,7 +3335,7 @@ void regulator_unregister(struct regulator_dev *rdev)
regulator_put(rdev->supply);
mutex_lock(&regulator_list_mutex);
debugfs_remove_recursive(rdev->debugfs);
flush_work_sync(&rdev->disable_work.work);
flush_work(&rdev->disable_work.work);
WARN_ON(rdev->open_count);
unset_regulator_supplies(rdev);
list_del(&rdev->list);


+ 2
- 2
drivers/scsi/arcmsr/arcmsr_hba.c View File

@ -999,7 +999,7 @@ static void arcmsr_remove(struct pci_dev *pdev)
int poll_count = 0;
arcmsr_free_sysfs_attr(acb);
scsi_remove_host(host);
flush_work_sync(&acb->arcmsr_do_message_isr_bh);
flush_work(&acb->arcmsr_do_message_isr_bh);
del_timer_sync(&acb->eternal_timer);
arcmsr_disable_outbound_ints(acb);
arcmsr_stop_adapter_bgrb(acb);
@ -1045,7 +1045,7 @@ static void arcmsr_shutdown(struct pci_dev *pdev)
(struct AdapterControlBlock *)host->hostdata;
del_timer_sync(&acb->eternal_timer);
arcmsr_disable_outbound_ints(acb);
flush_work_sync(&acb->arcmsr_do_message_isr_bh);
flush_work(&acb->arcmsr_do_message_isr_bh);
arcmsr_stop_adapter_bgrb(acb);
arcmsr_flush_adapter_cache(acb);
}


+ 1
- 1
drivers/scsi/ipr.c View File

@ -9020,7 +9020,7 @@ static void __ipr_remove(struct pci_dev *pdev)
spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags);
wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload);
flush_work_sync(&ioa_cfg->work_q);
flush_work(&ioa_cfg->work_q);
spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags);
spin_lock(&ipr_driver_lock);


+ 1
- 1
drivers/scsi/pmcraid.c View File

@ -5459,7 +5459,7 @@ static void __devexit pmcraid_remove(struct pci_dev *pdev)
pmcraid_shutdown(pdev);
pmcraid_disable_interrupts(pinstance, ~0);
flush_work_sync(&pinstance->worker_q);
flush_work(&pinstance->worker_q);
pmcraid_kill_tasklets(pinstance);
pmcraid_unregister_interrupt_handler(pinstance);


+ 1
- 1
drivers/scsi/qla2xxx/qla_target.c View File

@ -969,7 +969,7 @@ void qlt_stop_phase1(struct qla_tgt *tgt)
spin_unlock_irqrestore(&ha->hardware_lock, flags);
mutex_unlock(&ha->tgt.tgt_mutex);
flush_delayed_work_sync(&tgt->sess_del_work);
flush_delayed_work(&tgt->sess_del_work);
ql_dbg(ql_dbg_tgt_mgt, vha, 0xf009,
"Waiting for sess works (tgt %p)", tgt);


+ 1
- 1
drivers/tty/hvc/hvsi.c View File

@ -765,7 +765,7 @@ static void hvsi_flush_output(struct hvsi_struct *hp)
/* 'writer' could still be pending if it didn't see n_outbuf = 0 yet */
cancel_delayed_work_sync(&hp->writer);
flush_work_sync(&hp->handshaker);
flush_work(&hp->handshaker);
/*
* it's also possible that our timeout expired and hvsi_write_worker


+ 1
- 1
drivers/tty/ipwireless/hardware.c View File

@ -1729,7 +1729,7 @@ void ipwireless_hardware_free(struct ipw_hardware *hw)
ipwireless_stop_interrupts(hw);
flush_work_sync(&hw->work_rx);
flush_work(&hw->work_rx);
for (i = 0; i < NL_NUM_OF_ADDRESSES; i++)
if (hw->packet_assembler[i] != NULL)


+ 2
- 2
drivers/tty/ipwireless/network.c View File

@ -430,8 +430,8 @@ void ipwireless_network_free(struct ipw_network *network)
network->shutting_down = 1;
ipwireless_ppp_close(network);
flush_work_sync(&network->work_go_online);
flush_work_sync(&network->work_go_offline);
flush_work(&network->work_go_online);
flush_work(&network->work_go_offline);
ipwireless_stop_interrupts(network->hardware);
ipwireless_associate_network(network->hardware, NULL);


+ 1
- 1
drivers/tty/serial/kgdboc.c View File

@ -122,7 +122,7 @@ static void kgdboc_unregister_kbd(void)
i--;
}
}
flush_work_sync(&kgdboc_restore_input_work);
flush_work(&kgdboc_restore_input_work);
}
#else /* ! CONFIG_KDB_KEYBOARD */
#define kgdboc_register_kbd(x) 0


+ 1
- 1
drivers/tty/serial/omap-serial.c View File

@ -1205,7 +1205,7 @@ static int serial_omap_suspend(struct device *dev)
if (up) {
uart_suspend_port(&serial_omap_reg, &up->port);
flush_work_sync(&up->qos_work);
flush_work(&up->qos_work);
}
return 0;


+ 3
- 3
drivers/tty/tty_ldisc.c View File

@ -523,9 +523,9 @@ static int tty_ldisc_halt(struct tty_struct *tty)
*/
static void tty_ldisc_flush_works(struct tty_struct *tty)
{
flush_work_sync(&tty->hangup_work);
flush_work_sync(&tty->SAK_work);
flush_work_sync(&tty->buf.work);
flush_work(&tty->hangup_work);
flush_work(&tty->SAK_work);
flush_work(&tty->buf.work);
}
/**


+ 1
- 1
drivers/usb/atm/speedtch.c View File

@ -718,7 +718,7 @@ static void speedtch_atm_stop(struct usbatm_data *usbatm, struct atm_dev *atm_de
del_timer_sync(&instance->resubmit_timer);
usb_free_urb(int_urb);
flush_work_sync(&instance->status_check_work);
flush_work(&instance->status_check_work);
}
static int speedtch_pre_reset(struct usb_interface *intf)


+ 1
- 1
drivers/usb/atm/ueagle-atm.c View File

@ -2234,7 +2234,7 @@ static void uea_stop(struct uea_softc *sc)
usb_free_urb(sc->urb_int);
/* flush the work item, when no one can schedule it */
flush_work_sync(&sc->task);
flush_work(&sc->task);
release_firmware(sc->dsp_firm);
uea_leaves(INS_TO_USBDEV(sc));


+ 1
- 1
drivers/usb/gadget/u_ether.c View File

@ -834,7 +834,7 @@ void gether_cleanup(void)
return;
unregister_netdev(the_dev->net);
flush_work_sync(&the_dev->work);
flush_work(&the_dev->work);
free_netdev(the_dev->net);
the_dev = NULL;


+ 1
- 1
drivers/usb/host/ohci-hcd.c View File

@ -893,7 +893,7 @@ static void ohci_stop (struct usb_hcd *hcd)
ohci_dump (ohci, 1);
if (quirk_nec(ohci))
flush_work_sync(&ohci->nec_work);
flush_work(&ohci->nec_work);
ohci_usb_reset (ohci);
ohci_writel (ohci, OHCI_INTR_MIE, &ohci->regs->intrdisable);


+ 1
- 1
drivers/usb/otg/isp1301_omap.c View File

@ -1230,7 +1230,7 @@ static int __exit isp1301_remove(struct i2c_client *i2c)
isp->timer.data = 0;
set_bit(WORK_STOP, &isp->todo);
del_timer_sync(&isp->timer);
flush_work_sync(&isp->work);
flush_work(&isp->work);
put_device(&i2c->dev);
the_transceiver = NULL;


+ 1
- 1
fs/affs/super.c View File

@ -551,7 +551,7 @@ affs_remount(struct super_block *sb, int *flags, char *data)
return -EINVAL;
}
flush_delayed_work_sync(&sbi->sb_work);
flush_delayed_work(&sbi->sb_work);
replace_mount_options(sb, new_opts);
sbi->s_flags = mount_flags;


+ 1
- 1
fs/gfs2/lock_dlm.c View File

@ -1289,7 +1289,7 @@ static void gdlm_unmount(struct gfs2_sbd *sdp)
spin_lock(&ls->ls_recover_spin);
set_bit(DFL_UNMOUNT, &ls->ls_recover_flags);
spin_unlock(&ls->ls_recover_spin);
flush_delayed_work_sync(&sdp->sd_control_work);
flush_delayed_work(&sdp->sd_control_work);
/* mounted_lock and control_lock will be purged in dlm recovery */
release:


+ 1
- 1
fs/gfs2/super.c View File

@ -1572,7 +1572,7 @@ out:
clear_inode(inode);
gfs2_dir_hash_inval(ip);
ip->i_gl->gl_object = NULL;
flush_delayed_work_sync(&ip->i_gl->gl_work);
flush_delayed_work(&ip->i_gl->gl_work);
gfs2_glock_add_to_lru(ip->i_gl);
gfs2_glock_put(ip->i_gl);
ip->i_gl = NULL;


+ 1
- 1
fs/hfs/inode.c View File

@ -644,7 +644,7 @@ static int hfs_file_fsync(struct file *filp, loff_t start, loff_t end,
/* sync the superblock to buffers */
sb = inode->i_sb;
flush_delayed_work_sync(&HFS_SB(sb)->mdb_work);
flush_delayed_work(&HFS_SB(sb)->mdb_work);
/* .. finally sync the buffers to disk */
err = sync_blockdev(sb->s_bdev);
if (!ret)


+ 3
- 3
fs/ncpfs/inode.c View File

@ -314,11 +314,11 @@ static void ncp_stop_tasks(struct ncp_server *server) {
release_sock(sk);
del_timer_sync(&server->timeout_tm);
flush_work_sync(&server->rcv.tq);
flush_work(&server->rcv.tq);
if (sk->sk_socket->type == SOCK_STREAM)
flush_work_sync(&server->tx.tq);
flush_work(&server->tx.tq);
else
flush_work_sync(&server->timeout_tq);
flush_work(&server->timeout_tq);
}
static int ncp_show_options(struct seq_file *seq, struct dentry *root)


+ 1
- 1
fs/ocfs2/cluster/quorum.c View File

@ -327,5 +327,5 @@ void o2quo_exit(void)
{
struct o2quo_state *qs = &o2quo_state;
flush_work_sync(&qs->qs_work);
flush_work(&qs->qs_work);
}

+ 1
- 1
fs/xfs/xfs_super.c View File

@ -953,7 +953,7 @@ xfs_fs_sync_fs(
* We schedule xfssyncd now (now that the disk is
* active) instead of later (when it might not be).
*/
flush_delayed_work_sync(&mp->m_sync_work);
flush_delayed_work(&mp->m_sync_work);
}
return 0;


+ 1
- 1
fs/xfs/xfs_sync.c View File

@ -475,7 +475,7 @@ xfs_flush_inodes(
struct xfs_mount *mp = ip->i_mount;
queue_work(xfs_syncd_wq, &mp->m_flush_work);
flush_work_sync(&mp->m_flush_work);
flush_work(&mp->m_flush_work);
}
STATIC void


+ 2
- 2
include/linux/workqueue.h View File

@ -460,13 +460,13 @@ static inline bool __cancel_delayed_work(struct delayed_work *work)
}
/* used to be different but now identical to flush_work(), deprecated */
static inline bool flush_work_sync(struct work_struct *work)
static inline bool __deprecated flush_work_sync(struct work_struct *work)
{
return flush_work(work);
}
/* used to be different but now identical to flush_delayed_work(), deprecated */
static inline bool flush_delayed_work_sync(struct delayed_work *dwork)
static inline bool __deprecated flush_delayed_work_sync(struct delayed_work *dwork)
{
return flush_delayed_work(dwork);
}


+ 1
- 1
net/9p/trans_fd.c View File

@ -1083,7 +1083,7 @@ int p9_trans_fd_init(void)
void p9_trans_fd_exit(void)
{
flush_work_sync(&p9_poll_work);
flush_work(&p9_poll_work);
v9fs_unregister_trans(&p9_tcp_trans);
v9fs_unregister_trans(&p9_unix_trans);
v9fs_unregister_trans(&p9_fd_trans);


+ 1
- 1
net/dsa/dsa.c View File

@ -370,7 +370,7 @@ static int dsa_remove(struct platform_device *pdev)
if (dst->link_poll_needed)
del_timer_sync(&dst->link_poll_timer);
flush_work_sync(&dst->link_poll_work);
flush_work(&dst->link_poll_work);
for (i = 0; i < dst->pd->nr_chips; i++) {
struct dsa_switch *ds = dst->ds[i];


+ 1
- 1
sound/i2c/other/ak4113.c View File

@ -141,7 +141,7 @@ void snd_ak4113_reinit(struct ak4113 *chip)
{
chip->init = 1;
mb();
flush_delayed_work_sync(&chip->work);
flush_delayed_work(&chip->work);
ak4113_init_regs(chip);
/* bring up statistics / event queing */
chip->init = 0;


+ 1
- 1
sound/i2c/other/ak4114.c View File

@ -154,7 +154,7 @@ void snd_ak4114_reinit(struct ak4114 *chip)
{
chip->init = 1;
mb();
flush_delayed_work_sync(&chip->work);
flush_delayed_work(&chip->work);
ak4114_init_regs(chip);
/* bring up statistics / event queing */
chip->init = 0;


+ 4
- 4
sound/pci/oxygen/oxygen_lib.c View File

@ -573,8 +573,8 @@ static void oxygen_card_free(struct snd_card *card)
oxygen_shutdown(chip);
if (chip->irq >= 0)
free_irq(chip->irq, chip);
flush_work_sync(&chip->spdif_input_bits_work);
flush_work_sync(&chip->gpio_work);
flush_work(&chip->spdif_input_bits_work);
flush_work(&chip->gpio_work);
chip->model.cleanup(chip);
kfree(chip->model_data);
mutex_destroy(&chip->mutex);
@ -751,8 +751,8 @@ static int oxygen_pci_suspend(struct device *dev)
spin_unlock_irq(&chip->reg_lock);
synchronize_irq(chip->irq);
flush_work_sync(&chip->spdif_input_bits_work);
flush_work_sync(&chip->gpio_work);
flush_work(&chip->spdif_input_bits_work);
flush_work(&chip->gpio_work);
chip->interrupt_mask = saved_interrupt_mask;
pci_disable_device(pci);


+ 1
- 1
sound/soc/codecs/wm8350.c View File

@ -1601,7 +1601,7 @@ static int wm8350_codec_remove(struct snd_soc_codec *codec)
/* if there was any work waiting then we run it now and
* wait for its completion */
flush_delayed_work_sync(&codec->dapm.delayed_work);
flush_delayed_work(&codec->dapm.delayed_work);
wm8350_set_bias_level(codec, SND_SOC_BIAS_OFF);


+ 1
- 1
sound/soc/codecs/wm8753.c View File

@ -1509,7 +1509,7 @@ static int wm8753_probe(struct snd_soc_codec *codec)
/* power down chip */
static int wm8753_remove(struct snd_soc_codec *codec)
{
flush_delayed_work_sync(&codec->dapm.delayed_work);
flush_delayed_work(&codec->dapm.delayed_work);
wm8753_set_bias_level(codec, SND_SOC_BIAS_OFF);
return 0;


+ 3
- 3
sound/soc/soc-core.c View File

@ -591,7 +591,7 @@ int snd_soc_suspend(struct device *dev)
/* close any waiting streams and save state */
for (i = 0; i < card->num_rtd; i++) {
flush_delayed_work_sync(&card->rtd[i].delayed_work);
flush_delayed_work(&card->rtd[i].delayed_work);
card->rtd[i].codec->dapm.suspend_bias_level = card->rtd[i].codec->dapm.bias_level;
}
@ -1846,7 +1846,7 @@ static int soc_cleanup_card_resources(struct snd_soc_card *card)
/* make sure any delayed work runs */
for (i = 0; i < card->num_rtd; i++) {
struct snd_soc_pcm_runtime *rtd = &card->rtd[i];
flush_delayed_work_sync(&rtd->delayed_work);
flush_delayed_work(&rtd->delayed_work);
}
/* remove auxiliary devices */
@ -1890,7 +1890,7 @@ int snd_soc_poweroff(struct device *dev)
* now, we're shutting down so no imminent restart. */
for (i = 0; i < card->num_rtd; i++) {
struct snd_soc_pcm_runtime *rtd = &card->rtd[i];
flush_delayed_work_sync(&rtd->delayed_work);
flush_delayed_work(&rtd->delayed_work);
}
snd_soc_dapm_shutdown(card);


+ 1
- 1
virt/kvm/eventfd.c View File

@ -90,7 +90,7 @@ irqfd_shutdown(struct work_struct *work)
* We know no new events will be scheduled at this point, so block
* until all previously outstanding events have completed
*/
flush_work_sync(&irqfd->inject);
flush_work(&irqfd->inject);
/*
* It is now safe to release the object's resources


Loading…
Cancel
Save