From: Chad Dupuis <cdupuis@redhat.com> Date: Mon, 27 Sep 2010 20:35:23 -0400 Subject: [net] qlcnic: fix poll implementation Message-id: <20100927203522.3859.56039.sendpatchset@localhost.localdomain> Patchwork-id: 28435 O-Subject: [RHEL 5.6 PATCH 6/6] qlcnic: fix poll implementation Bugzilla: 625084 RH-Acked-by: Andy Gospodarek <gospo@redhat.com> RH-Acked-by: Stefan Assmann <sassmann@redhat.com> Bugzilla -------- Bug 625084 (https://bugzilla.redhat.com/show_bug.cgi?id=625084) Upstream Status --------------- net-2.6 commit id bf82791ed667758a0f18a4b76be2d931d2c1b39d Description ----------- >From 5c2156d6f71013348150f3b6528fe6a4921edfe8 Mon Sep 17 00:00:00 2001 From: Yinglin Luan <synmyth@gmail.com> Date: Thu, 2 Sep 2010 16:01:45 -0800 Subject: [PATCH] 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> diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index d4ac0d2..dbb1b76 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c @@ -2205,9 +2205,16 @@ static int qlcnic_rx_poll(struct net_device *netdev, 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, NULL); + for (ring = 0; ring < adapter->max_sds_rings; ring++) { + sds_ring = &recv_ctx->sds_rings[ring]; + qlcnic_intr(adapter->irq, sds_ring, NULL); + } enable_irq(adapter->irq); } #endif