aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/qlge/qlge.h
diff options
context:
space:
mode:
authorRon Mercer <ron.mercer@qlogic.com>2009-08-27 07:02:11 -0400
committerDavid S. Miller <davem@davemloft.net>2009-08-29 02:22:34 -0400
commit39aa81659353becbe4ee34d72cf79e02182e858a (patch)
tree4b61c88bd140489be86296c2bfb4a501683b960b /drivers/net/qlge/qlge.h
parenta4ab613717184138763c5fb4a4b4bbc354d5b0ee (diff)
qlge: Move TX completions from workqueue to NAPI.
TX completions were running in a workqueue queued by the ISR. This patch moves the processing of TX completions to an existing RSS NAPI context. Now each irq vector runs NAPI for one RSS ring and one or more TX completion rings. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlge/qlge.h')
-rw-r--r--drivers/net/qlge/qlge.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h
index ed5dbca01bd1..a9845a2f243f 100644
--- a/drivers/net/qlge/qlge.h
+++ b/drivers/net/qlge/qlge.h
@@ -1292,7 +1292,6 @@ struct rx_ring {
1292 u32 cpu; /* Which CPU this should run on. */ 1292 u32 cpu; /* Which CPU this should run on. */
1293 char name[IFNAMSIZ + 5]; 1293 char name[IFNAMSIZ + 5];
1294 struct napi_struct napi; 1294 struct napi_struct napi;
1295 struct delayed_work rx_work;
1296 u8 reserved; 1295 u8 reserved;
1297 struct ql_adapter *qdev; 1296 struct ql_adapter *qdev;
1298}; 1297};
@@ -1366,6 +1365,7 @@ struct nic_stats {
1366struct intr_context { 1365struct intr_context {
1367 struct ql_adapter *qdev; 1366 struct ql_adapter *qdev;
1368 u32 intr; 1367 u32 intr;
1368 u32 irq_mask; /* Mask of which rings the vector services. */
1369 u32 hooked; 1369 u32 hooked;
1370 u32 intr_en_mask; /* value/mask used to enable this intr */ 1370 u32 intr_en_mask; /* value/mask used to enable this intr */
1371 u32 intr_dis_mask; /* value/mask used to disable this intr */ 1371 u32 intr_dis_mask; /* value/mask used to disable this intr */
@@ -1486,11 +1486,11 @@ struct ql_adapter {
1486 struct intr_context intr_context[MAX_RX_RINGS]; 1486 struct intr_context intr_context[MAX_RX_RINGS];
1487 1487
1488 int tx_ring_count; /* One per online CPU. */ 1488 int tx_ring_count; /* One per online CPU. */
1489 u32 rss_ring_count; /* One per online CPU. */ 1489 u32 rss_ring_count; /* One per irq vector. */
1490 /* 1490 /*
1491 * rx_ring_count = 1491 * rx_ring_count =
1492 * (CPU count * outbound completion rx_ring) + 1492 * (CPU count * outbound completion rx_ring) +
1493 * (CPU count * inbound (RSS) completion rx_ring) 1493 * (irq_vector_cnt * inbound (RSS) completion rx_ring)
1494 */ 1494 */
1495 int rx_ring_count; 1495 int rx_ring_count;
1496 int ring_mem_size; 1496 int ring_mem_size;
@@ -1517,7 +1517,6 @@ struct ql_adapter {
1517 union flash_params flash; 1517 union flash_params flash;
1518 1518
1519 struct net_device_stats stats; 1519 struct net_device_stats stats;
1520 struct workqueue_struct *q_workqueue;
1521 struct workqueue_struct *workqueue; 1520 struct workqueue_struct *workqueue;
1522 struct delayed_work asic_reset_work; 1521 struct delayed_work asic_reset_work;
1523 struct delayed_work mpi_reset_work; 1522 struct delayed_work mpi_reset_work;