diff options
| -rw-r--r-- | drivers/firewire/core-card.c | 4 | ||||
| -rw-r--r-- | drivers/firewire/core-cdev.c | 2 | ||||
| -rw-r--r-- | drivers/firewire/core-device.c | 5 | ||||
| -rw-r--r-- | drivers/firewire/core-transaction.c | 12 | ||||
| -rw-r--r-- | drivers/firewire/core.h | 2 | ||||
| -rw-r--r-- | drivers/firewire/sbp2.c | 9 | ||||
| -rw-r--r-- | include/linux/firewire.h | 2 | 
7 files changed, 15 insertions, 21 deletions
diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c index bb8c4d22b03..29d2423fae6 100644 --- a/drivers/firewire/core-card.c +++ b/drivers/firewire/core-card.c @@ -228,7 +228,7 @@ void fw_schedule_bus_reset(struct fw_card *card, bool delayed, bool short_reset)  	/* Use an arbitrary short delay to combine multiple reset requests. */  	fw_card_get(card); -	if (!queue_delayed_work(fw_wq, &card->br_work, +	if (!queue_delayed_work(fw_workqueue, &card->br_work,  				delayed ? DIV_ROUND_UP(HZ, 100) : 0))  		fw_card_put(card);  } @@ -241,7 +241,7 @@ static void br_work(struct work_struct *work)  	/* Delay for 2s after last reset per IEEE 1394 clause 8.2.1. */  	if (card->reset_jiffies != 0 &&  	    time_before64(get_jiffies_64(), card->reset_jiffies + 2 * HZ)) { -		if (!queue_delayed_work(fw_wq, &card->br_work, 2 * HZ)) +		if (!queue_delayed_work(fw_workqueue, &card->br_work, 2 * HZ))  			fw_card_put(card);  		return;  	} diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c index aa1131d26e3..b1c11775839 100644 --- a/drivers/firewire/core-cdev.c +++ b/drivers/firewire/core-cdev.c @@ -149,7 +149,7 @@ static void release_iso_resource(struct client *, struct client_resource *);  static void schedule_iso_resource(struct iso_resource *r, unsigned long delay)  {  	client_get(r->client); -	if (!queue_delayed_work(fw_wq, &r->work, delay)) +	if (!queue_delayed_work(fw_workqueue, &r->work, delay))  		client_put(r->client);  } diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c index ef900d923f1..95a47140189 100644 --- a/drivers/firewire/core-device.c +++ b/drivers/firewire/core-device.c @@ -725,12 +725,13 @@ struct fw_device *fw_device_get_by_devt(dev_t devt)  	return device;  } -struct workqueue_struct *fw_wq; +struct workqueue_struct *fw_workqueue; +EXPORT_SYMBOL(fw_workqueue);  static void fw_schedule_device_work(struct fw_device *device,  				    unsigned long delay)  { -	queue_delayed_work(fw_wq, &device->work, delay); +	queue_delayed_work(fw_workqueue, &device->work, delay);  }  /* diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c index d4c28a217b2..334b82a3542 100644 --- a/drivers/firewire/core-transaction.c +++ b/drivers/firewire/core-transaction.c @@ -1214,21 +1214,21 @@ static int __init fw_core_init(void)  {  	int ret; -	fw_wq = alloc_workqueue(KBUILD_MODNAME, -				WQ_NON_REENTRANT | WQ_MEM_RECLAIM, 0); -	if (!fw_wq) +	fw_workqueue = alloc_workqueue("firewire", +				       WQ_NON_REENTRANT | WQ_MEM_RECLAIM, 0); +	if (!fw_workqueue)  		return -ENOMEM;  	ret = bus_register(&fw_bus_type);  	if (ret < 0) { -		destroy_workqueue(fw_wq); +		destroy_workqueue(fw_workqueue);  		return ret;  	}  	fw_cdev_major = register_chrdev(0, "firewire", &fw_device_ops);  	if (fw_cdev_major < 0) {  		bus_unregister(&fw_bus_type); -		destroy_workqueue(fw_wq); +		destroy_workqueue(fw_workqueue);  		return fw_cdev_major;  	} @@ -1244,7 +1244,7 @@ static void __exit fw_core_cleanup(void)  {  	unregister_chrdev(fw_cdev_major, "firewire");  	bus_unregister(&fw_bus_type); -	destroy_workqueue(fw_wq); +	destroy_workqueue(fw_workqueue);  	idr_destroy(&fw_device_idr);  } diff --git a/drivers/firewire/core.h b/drivers/firewire/core.h index 00ea7730c6a..0fe4e4e6eda 100644 --- a/drivers/firewire/core.h +++ b/drivers/firewire/core.h @@ -140,8 +140,6 @@ void fw_cdev_handle_phy_packet(struct fw_card *card, struct fw_packet *p);  extern struct rw_semaphore fw_device_rwsem;  extern struct idr fw_device_idr;  extern int fw_cdev_major; -struct workqueue_struct; -extern struct workqueue_struct *fw_wq;  struct fw_device *fw_device_get_by_devt(dev_t devt);  int fw_device_set_broadcast_channel(struct device *dev, void *gen); diff --git a/drivers/firewire/sbp2.c b/drivers/firewire/sbp2.c index 2aafc614ae1..41841a3e3f9 100644 --- a/drivers/firewire/sbp2.c +++ b/drivers/firewire/sbp2.c @@ -826,8 +826,6 @@ static void sbp2_target_put(struct sbp2_target *tgt)  	kref_put(&tgt->kref, sbp2_release_target);  } -static struct workqueue_struct *sbp2_wq; -  /*   * Always get the target's kref when scheduling work on one its units.   * Each workqueue job is responsible to call sbp2_target_put() upon return. @@ -835,7 +833,7 @@ static struct workqueue_struct *sbp2_wq;  static void sbp2_queue_work(struct sbp2_logical_unit *lu, unsigned long delay)  {  	sbp2_target_get(lu->tgt); -	if (!queue_delayed_work(sbp2_wq, &lu->work, delay)) +	if (!queue_delayed_work(fw_workqueue, &lu->work, delay))  		sbp2_target_put(lu->tgt);  } @@ -1645,17 +1643,12 @@ MODULE_ALIAS("sbp2");  static int __init sbp2_init(void)  { -	sbp2_wq = create_singlethread_workqueue(KBUILD_MODNAME); -	if (!sbp2_wq) -		return -ENOMEM; -  	return driver_register(&sbp2_driver.driver);  }  static void __exit sbp2_cleanup(void)  {  	driver_unregister(&sbp2_driver.driver); -	destroy_workqueue(sbp2_wq);  }  module_init(sbp2_init); diff --git a/include/linux/firewire.h b/include/linux/firewire.h index c0fb405bb43..5e6f42789af 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h @@ -449,4 +449,6 @@ void fw_iso_resource_manage(struct fw_card *card, int generation,  			    u64 channels_mask, int *channel, int *bandwidth,  			    bool allocate); +extern struct workqueue_struct *fw_workqueue; +  #endif /* _LINUX_FIREWIRE_H */  |