summary refs log tree commit diff
path: root/drivers/net/qlcnic
diff options
context:
space:
mode:
authorYinglin Luan <synmyth@gmail.com>2010-08-22 21:57:56 +0000
committerDavid S. Miller <davem@davemloft.net>2010-08-23 20:28:55 -0700
commitbf82791ed667758a0f18a4b76be2d931d2c1b39d (patch)
tree6a5d0e5f0da24d17115da2aa5729c1e4b50f8277 /drivers/net/qlcnic
parent7b589a35a1063b52f98c8b0f1b8f69afe91c3dba (diff)
downloadlinux-bf82791ed667758a0f18a4b76be2d931d2c1b39d.tar.gz
qlcnic: fix poll implementation
Function qlcnic_intr has pointer to qlcnic_host_sds_ring
as second parameter not pointer to qlcnic_adapter.

Signed-off-by: Yinglin Luan <synmyth@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlcnic')
-rw-r--r--drivers/net/qlcnic/qlcnic_main.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c
index 213e3656d953..66eea5972020 100644
--- a/drivers/net/qlcnic/qlcnic_main.c
+++ b/drivers/net/qlcnic/qlcnic_main.c
@@ -2188,9 +2188,16 @@ static int qlcnic_rx_poll(struct napi_struct *napi, int budget)
 #ifdef CONFIG_NET_POLL_CONTROLLER
 static void qlcnic_poll_controller(struct net_device *netdev)
 {
+	int ring;
+	struct qlcnic_host_sds_ring *sds_ring;
 	struct qlcnic_adapter *adapter = netdev_priv(netdev);
+	struct qlcnic_recv_context *recv_ctx = &adapter->recv_ctx;
+
 	disable_irq(adapter->irq);
-	qlcnic_intr(adapter->irq, adapter);
+	for (ring = 0; ring < adapter->max_sds_rings; ring++) {
+		sds_ring = &recv_ctx->sds_rings[ring];
+		qlcnic_intr(adapter->irq, sds_ring);
+	}
 	enable_irq(adapter->irq);
 }
 #endif