enic: Bug Fix: Fix hardware transmit queue indexing in enic_poll_controller
authorVasanthy Kolluri <vkolluri@cisco.com>
Thu, 9 Jun 2011 10:37:07 +0000 (10:37 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 9 Jun 2011 21:58:09 +0000 (14:58 -0700)
Signed-off-by: Christian Benvenuti <benve@cisco.com>
Signed-off-by: Danny Guo <dannguo@cisco.com>
Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
Signed-off-by: David Wang <dwang2@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/enic/enic.h
drivers/net/enic/enic_main.c

index 2dcf310..f747bce 100644 (file)
@@ -32,7 +32,7 @@
 
 #define DRV_NAME               "enic"
 #define DRV_DESCRIPTION                "Cisco VIC Ethernet NIC Driver"
-#define DRV_VERSION            "2.1.1.19"
+#define DRV_VERSION            "2.1.1.20"
 #define DRV_COPYRIGHT          "Copyright 2008-2011 Cisco Systems, Inc"
 
 #define ENIC_BARS_MAX          6
index e3bffe1..4b3a93a 100644 (file)
@@ -1777,8 +1777,12 @@ static void enic_poll_controller(struct net_device *netdev)
                        enic_isr_msix_rq(enic->msix_entry[intr].vector,
                                &enic->napi[i]);
                }
-               intr = enic_msix_wq_intr(enic, i);
-               enic_isr_msix_wq(enic->msix_entry[intr].vector, enic);
+
+               for (i = 0; i < enic->wq_count; i++) {
+                       intr = enic_msix_wq_intr(enic, i);
+                       enic_isr_msix_wq(enic->msix_entry[intr].vector, enic);
+               }
+
                break;
        case VNIC_DEV_INTR_MODE_MSI:
                enic_isr_msi(enic->pdev->irq, enic);