diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2008-12-26 16:44:39 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-26 16:44:39 -0500 |
commit | 6977dc6309ea8bbcb24c0a1356c33969e4a07410 (patch) | |
tree | 6a18651492dee4932c940ddca84ab03ae8094037 /drivers/net | |
parent | e727149e26b08550269a7786fda977aed65578f6 (diff) |
sfc: Generate unique names for per-NIC workqueues
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/sfc/efx.c | 5 | ||||
-rw-r--r-- | drivers/net/sfc/net_driver.h | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c index 42934ba2030d..46c2a8b0a88d 100644 --- a/drivers/net/sfc/efx.c +++ b/drivers/net/sfc/efx.c | |||
@@ -1929,7 +1929,10 @@ static int efx_init_struct(struct efx_nic *efx, struct efx_nic_type *type, | |||
1929 | efx->interrupt_mode = max(efx->type->max_interrupt_mode, | 1929 | efx->interrupt_mode = max(efx->type->max_interrupt_mode, |
1930 | interrupt_mode); | 1930 | interrupt_mode); |
1931 | 1931 | ||
1932 | efx->workqueue = create_singlethread_workqueue("sfc_work"); | 1932 | /* Would be good to use the net_dev name, but we're too early */ |
1933 | snprintf(efx->workqueue_name, sizeof(efx->workqueue_name), "sfc%s", | ||
1934 | pci_name(pci_dev)); | ||
1935 | efx->workqueue = create_singlethread_workqueue(efx->workqueue_name); | ||
1933 | if (!efx->workqueue) | 1936 | if (!efx->workqueue) |
1934 | return -ENOMEM; | 1937 | return -ENOMEM; |
1935 | 1938 | ||
diff --git a/drivers/net/sfc/net_driver.h b/drivers/net/sfc/net_driver.h index 03feaee04acd..b0c79755ef2f 100644 --- a/drivers/net/sfc/net_driver.h +++ b/drivers/net/sfc/net_driver.h | |||
@@ -700,6 +700,7 @@ union efx_multicast_hash { | |||
700 | * @legacy_irq: IRQ number | 700 | * @legacy_irq: IRQ number |
701 | * @workqueue: Workqueue for port reconfigures and the HW monitor. | 701 | * @workqueue: Workqueue for port reconfigures and the HW monitor. |
702 | * Work items do not hold and must not acquire RTNL. | 702 | * Work items do not hold and must not acquire RTNL. |
703 | * @workqueue_name: Name of workqueue | ||
703 | * @reset_work: Scheduled reset workitem | 704 | * @reset_work: Scheduled reset workitem |
704 | * @monitor_work: Hardware monitor workitem | 705 | * @monitor_work: Hardware monitor workitem |
705 | * @membase_phys: Memory BAR value as physical address | 706 | * @membase_phys: Memory BAR value as physical address |
@@ -781,6 +782,7 @@ struct efx_nic { | |||
781 | const struct efx_nic_type *type; | 782 | const struct efx_nic_type *type; |
782 | int legacy_irq; | 783 | int legacy_irq; |
783 | struct workqueue_struct *workqueue; | 784 | struct workqueue_struct *workqueue; |
785 | char workqueue_name[16]; | ||
784 | struct work_struct reset_work; | 786 | struct work_struct reset_work; |
785 | struct delayed_work monitor_work; | 787 | struct delayed_work monitor_work; |
786 | resource_size_t membase_phys; | 788 | resource_size_t membase_phys; |