summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYinglin Luan <synmyth@gmail.com>2010-08-22 23:56:19 +0200
committerDavid S. Miller <davem@davemloft.net>2010-08-24 05:28:55 +0200
commit7b589a35a1063b52f98c8b0f1b8f69afe91c3dba (patch)
treeb74468073f1b6f1edebef94afad544b933584956
parentbridge: netfilter: fix a memory leak (diff)
downloadlinux-7b589a35a1063b52f98c8b0f1b8f69afe91c3dba.tar.xz
linux-7b589a35a1063b52f98c8b0f1b8f69afe91c3dba.zip
netxen: fix poll implementation
Function netxen_intr has pointer to nx_host_sds_ring as second parameter not pointer to netxen_adapter. Signed-off-by: Yinglin Luan <synmyth@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/netxen/netxen_nic_main.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index cb30df106a2c..73d314592230 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -2131,9 +2131,16 @@ static int netxen_nic_poll(struct napi_struct *napi, int budget)
#ifdef CONFIG_NET_POLL_CONTROLLER
static void netxen_nic_poll_controller(struct net_device *netdev)
{
+ int ring;
+ struct nx_host_sds_ring *sds_ring;
struct netxen_adapter *adapter = netdev_priv(netdev);
+ struct netxen_recv_context *recv_ctx = &adapter->recv_ctx;
+
disable_irq(adapter->irq);
- netxen_intr(adapter->irq, adapter);
+ for (ring = 0; ring < adapter->max_sds_rings; ring++) {
+ sds_ring = &recv_ctx->sds_rings[ring];
+ netxen_intr(adapter->irq, sds_ring);
+ }
enable_irq(adapter->irq);
}
#endif