forked from Minki/linux
make netxen_workq static
netxen_workq can now become static. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
parent
3caa4af834
commit
b1555130c7
@ -95,23 +95,6 @@
|
|||||||
|
|
||||||
#define ADDR_IN_WINDOW1(off) \
|
#define ADDR_IN_WINDOW1(off) \
|
||||||
((off > NETXEN_CRB_PCIX_HOST2) && (off < NETXEN_CRB_MAX)) ? 1 : 0
|
((off > NETXEN_CRB_PCIX_HOST2) && (off < NETXEN_CRB_MAX)) ? 1 : 0
|
||||||
/*
|
|
||||||
* In netxen_nic_down(), we must wait for any pending callback requests into
|
|
||||||
* netxen_watchdog_task() to complete; eg otherwise the watchdog_timer could be
|
|
||||||
* reenabled right after it is deleted in netxen_nic_down(). FLUSH_SCHEDULED_WORK()
|
|
||||||
* does this synchronization.
|
|
||||||
*
|
|
||||||
* Normally, schedule_work()/flush_scheduled_work() could have worked, but
|
|
||||||
* netxen_nic_close() is invoked with kernel rtnl lock held. netif_carrier_off()
|
|
||||||
* call in netxen_nic_close() triggers a schedule_work(&linkwatch_work), and a
|
|
||||||
* subsequent call to flush_scheduled_work() in netxen_nic_down() would cause
|
|
||||||
* linkwatch_event() to be executed which also attempts to acquire the rtnl
|
|
||||||
* lock thus causing a deadlock.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define SCHEDULE_WORK(tp) queue_work(netxen_workq, tp)
|
|
||||||
#define FLUSH_SCHEDULED_WORK() flush_workqueue(netxen_workq)
|
|
||||||
extern struct workqueue_struct *netxen_workq;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* normalize a 64MB crb address to 32MB PCI window
|
* normalize a 64MB crb address to 32MB PCI window
|
||||||
|
@ -86,7 +86,24 @@ static struct pci_device_id netxen_pci_tbl[] __devinitdata = {
|
|||||||
|
|
||||||
MODULE_DEVICE_TABLE(pci, netxen_pci_tbl);
|
MODULE_DEVICE_TABLE(pci, netxen_pci_tbl);
|
||||||
|
|
||||||
struct workqueue_struct *netxen_workq;
|
/*
|
||||||
|
* In netxen_nic_down(), we must wait for any pending callback requests into
|
||||||
|
* netxen_watchdog_task() to complete; eg otherwise the watchdog_timer could be
|
||||||
|
* reenabled right after it is deleted in netxen_nic_down().
|
||||||
|
* FLUSH_SCHEDULED_WORK() does this synchronization.
|
||||||
|
*
|
||||||
|
* Normally, schedule_work()/flush_scheduled_work() could have worked, but
|
||||||
|
* netxen_nic_close() is invoked with kernel rtnl lock held. netif_carrier_off()
|
||||||
|
* call in netxen_nic_close() triggers a schedule_work(&linkwatch_work), and a
|
||||||
|
* subsequent call to flush_scheduled_work() in netxen_nic_down() would cause
|
||||||
|
* linkwatch_event() to be executed which also attempts to acquire the rtnl
|
||||||
|
* lock thus causing a deadlock.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static struct workqueue_struct *netxen_workq;
|
||||||
|
#define SCHEDULE_WORK(tp) queue_work(netxen_workq, tp)
|
||||||
|
#define FLUSH_SCHEDULED_WORK() flush_workqueue(netxen_workq)
|
||||||
|
|
||||||
static void netxen_watchdog(unsigned long);
|
static void netxen_watchdog(unsigned long);
|
||||||
|
|
||||||
static void netxen_nic_update_cmd_producer(struct netxen_adapter *adapter,
|
static void netxen_nic_update_cmd_producer(struct netxen_adapter *adapter,
|
||||||
|
Loading…
Reference in New Issue
Block a user