Skip to content
/ linux Public
forked from torvalds/linux

Commit

Permalink
workqueue: deprecate flush[_delayed]_work_sync()
Browse files Browse the repository at this point in the history
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 <[email protected]>
Cc: Russell King <[email protected]>
Cc: Paul Mundt <[email protected]>
Cc: Ian Campbell <[email protected]>
Cc: Jens Axboe <[email protected]>
Cc: Mattia Dongili <[email protected]>
Cc: Kent Yoder <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Jiri Kosina <[email protected]>
Cc: Karsten Keil <[email protected]>
Cc: Bryan Wu <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Alasdair Kergon <[email protected]>
Cc: Mauro Carvalho Chehab <[email protected]>
Cc: Florian Tobias Schandinat <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: [email protected]
Cc: Anton Vorontsov <[email protected]>
Cc: Sangbeom Kim <[email protected]>
Cc: "James E.J. Bottomley" <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Eric Van Hensbergen <[email protected]>
Cc: Takashi Iwai <[email protected]>
Cc: Steven Whitehouse <[email protected]>
Cc: Petr Vandrovec <[email protected]>
Cc: Mark Fasheh <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Avi Kivity <[email protected]>
  • Loading branch information
htejun committed Aug 20, 2012
1 parent ae930e0 commit 4382973
Show file tree
Hide file tree
Showing 81 changed files with 111 additions and 111 deletions.
4 changes: 2 additions & 2 deletions arch/arm/mach-pxa/sharpsl_pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/plat-omap/mailbox.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
2 changes: 1 addition & 1 deletion arch/sh/drivers/push-switch.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
4 changes: 2 additions & 2 deletions drivers/block/xen-blkfront.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down Expand Up @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/cdrom/gdrom.c
Original file line number Diff line number Diff line change
Expand Up @@ -840,7 +840,7 @@ static int __devinit probe_gdrom(struct platform_device *devptr)

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);
Expand Down
2 changes: 1 addition & 1 deletion drivers/char/sonypi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions drivers/char/tpm/tpm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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 */
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/exynos/exynos_drm_g2d.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/nouveau/nouveau_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/radeon/radeon_irq_kms.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion drivers/hid/hid-picolcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/input/touchscreen/wm831x-ts.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions drivers/isdn/mISDN/hwchannel.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
6 changes: 3 additions & 3 deletions drivers/leds/leds-lm3533.c
Original file line number Diff line number Diff line change
Expand Up @@ -737,7 +737,7 @@ static int __devinit lm3533_led_probe(struct platform_device *pdev)
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;
}
Expand All @@ -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;
}
Expand All @@ -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 = {
Expand Down
2 changes: 1 addition & 1 deletion drivers/leds/leds-lp8788.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/leds/leds-wm8350.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion drivers/macintosh/ams/ams-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion drivers/md/dm-mpath.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion drivers/md/dm-raid1.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion drivers/md/dm-stripe.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
4 changes: 2 additions & 2 deletions drivers/media/dvb/dvb-core/dvb_net.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb/mantis/mantis_evm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
2 changes: 1 addition & 1 deletion drivers/media/dvb/mantis/mantis_uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
2 changes: 1 addition & 1 deletion drivers/media/video/bt8xx/bttv-driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/cx18/cx18-driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/cx231xx/cx231xx-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions drivers/media/video/cx23885/cx23885-input.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/cx88/cx88-mpeg.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/em28xx/em28xx-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions drivers/media/video/omap24xxcam.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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);
Expand All @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/saa7134/saa7134-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/saa7134/saa7134-empress.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/tm6000/tm6000-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions drivers/mfd/menelaus.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down
Loading

0 comments on commit 4382973

Please sign in to comment.