aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netxen/netxen_nic.h
diff options
context:
space:
mode:
authorDhananjay Phadke <dhananjay@netxen.com>2008-03-17 22:59:49 -0400
committerJeff Garzik <jeff@garzik.org>2008-03-25 23:16:16 -0400
commit05aaa02d799e8e9548d57ac92fcb05e783027341 (patch)
treebecfc839727f798364c13549e332de0830d7676f /drivers/net/netxen/netxen_nic.h
parent443be7960be77f3345b44491c700ae4471b0fe57 (diff)
netxen: napi and irq cleanup
o separate and simpler irq handler for msi interrupts, avoids few checks than legacy mode. o avoid redudant tx_has_work() and rx_has_work() checks in interrupt and napi, which can uncork irq based on racy (lockless) access to tx and rx ring indices. If we get interrupt, there's sufficient reason to schedule napi. o replenish rx ring more often, remove self-imposed threshold rcv_free that prevents posting rx desc to card. This improves performance in low memory. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Tested-by: Vernon Mauery <mauery@us.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/netxen/netxen_nic.h')
-rw-r--r--drivers/net/netxen/netxen_nic.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h
index 876cd0635f2e..8b6546ccb47b 100644
--- a/drivers/net/netxen/netxen_nic.h
+++ b/drivers/net/netxen/netxen_nic.h
@@ -842,7 +842,6 @@ struct netxen_rcv_desc_ctx {
842 u32 flags; 842 u32 flags;
843 u32 producer; 843 u32 producer;
844 u32 rcv_pending; /* Num of bufs posted in phantom */ 844 u32 rcv_pending; /* Num of bufs posted in phantom */
845 u32 rcv_free; /* Num of bufs in free list */
846 dma_addr_t phys_addr; 845 dma_addr_t phys_addr;
847 struct pci_dev *phys_pdev; 846 struct pci_dev *phys_pdev;
848 struct rcv_desc *desc_head; /* address of rx ring in Phantom */ 847 struct rcv_desc *desc_head; /* address of rx ring in Phantom */
@@ -1076,12 +1075,10 @@ void netxen_tso_check(struct netxen_adapter *adapter,
1076 struct cmd_desc_type0 *desc, struct sk_buff *skb); 1075 struct cmd_desc_type0 *desc, struct sk_buff *skb);
1077int netxen_nic_hw_resources(struct netxen_adapter *adapter); 1076int netxen_nic_hw_resources(struct netxen_adapter *adapter);
1078void netxen_nic_clear_stats(struct netxen_adapter *adapter); 1077void netxen_nic_clear_stats(struct netxen_adapter *adapter);
1079int netxen_nic_rx_has_work(struct netxen_adapter *adapter);
1080int netxen_nic_tx_has_work(struct netxen_adapter *adapter);
1081void netxen_watchdog_task(struct work_struct *work); 1078void netxen_watchdog_task(struct work_struct *work);
1082void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx, 1079void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx,
1083 u32 ringid); 1080 u32 ringid);
1084int netxen_process_cmd_ring(unsigned long data); 1081int netxen_process_cmd_ring(struct netxen_adapter *adapter);
1085u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctx, int max); 1082u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctx, int max);
1086void netxen_nic_set_multi(struct net_device *netdev); 1083void netxen_nic_set_multi(struct net_device *netdev);
1087int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu); 1084int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu);