]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ixgbe: pass adapter struct instead of netdev for interrupt data
authorAlexander Duyck <alexander.h.duyck@intel.com>
Fri, 27 May 2011 05:31:32 +0000 (05:31 +0000)
committerJoe Jin <joe.jin@oracle.com>
Fri, 3 Feb 2012 01:15:55 +0000 (09:15 +0800)
This change makes it so that we pass the adapter struct instead of the
netdev for most of the basic interrupts that are not associated with
q_vectors.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit a65151ba201fe56ac146767e018674a84bfef1a6)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/ixgbe/ixgbe_main.c

index 7c476ec91aa3aa3e1d287894839cc470d61a61b6..25f8bcd41ad1eec6406f3e7d7818c4b7ffb44324 100644 (file)
@@ -1936,8 +1936,7 @@ static void ixgbe_check_lsc(struct ixgbe_adapter *adapter)
 
 static irqreturn_t ixgbe_msix_lsc(int irq, void *data)
 {
-       struct net_device *netdev = data;
-       struct ixgbe_adapter *adapter = netdev_priv(netdev);
+       struct ixgbe_adapter *adapter = data;
        struct ixgbe_hw *hw = &adapter->hw;
        u32 eicr;
 
@@ -2432,7 +2431,7 @@ static int ixgbe_request_msix_irqs(struct ixgbe_adapter *adapter)
 
        sprintf(adapter->lsc_int_name, "%s:lsc", netdev->name);
        err = request_irq(adapter->msix_entries[vector].vector,
-                         ixgbe_msix_lsc, 0, adapter->lsc_int_name, netdev);
+                         ixgbe_msix_lsc, 0, adapter->lsc_int_name, adapter);
        if (err) {
                e_err(probe, "request_irq for msix_lsc failed: %d\n", err);
                goto free_queue_irqs;
@@ -2544,8 +2543,7 @@ static inline void ixgbe_irq_enable(struct ixgbe_adapter *adapter, bool queues,
  **/
 static irqreturn_t ixgbe_intr(int irq, void *data)
 {
-       struct net_device *netdev = data;
-       struct ixgbe_adapter *adapter = netdev_priv(netdev);
+       struct ixgbe_adapter *adapter = data;
        struct ixgbe_hw *hw = &adapter->hw;
        struct ixgbe_q_vector *q_vector = adapter->q_vector[0];
        u32 eicr;
@@ -2642,10 +2640,10 @@ static int ixgbe_request_irq(struct ixgbe_adapter *adapter)
                err = ixgbe_request_msix_irqs(adapter);
        } else if (adapter->flags & IXGBE_FLAG_MSI_ENABLED) {
                err = request_irq(adapter->pdev->irq, ixgbe_intr, 0,
-                                 netdev->name, netdev);
+                                 netdev->name, adapter);
        } else {
                err = request_irq(adapter->pdev->irq, ixgbe_intr, IRQF_SHARED,
-                                 netdev->name, netdev);
+                                 netdev->name, adapter);
        }
 
        if (err)
@@ -2656,15 +2654,13 @@ static int ixgbe_request_irq(struct ixgbe_adapter *adapter)
 
 static void ixgbe_free_irq(struct ixgbe_adapter *adapter)
 {
-       struct net_device *netdev = adapter->netdev;
-
        if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) {
                int i, q_vectors;
 
                q_vectors = adapter->num_msix_vectors;
 
                i = q_vectors - 1;
-               free_irq(adapter->msix_entries[i].vector, netdev);
+               free_irq(adapter->msix_entries[i].vector, adapter);
 
                i--;
                for (; i >= 0; i--) {
@@ -2679,7 +2675,7 @@ static void ixgbe_free_irq(struct ixgbe_adapter *adapter)
 
                ixgbe_reset_q_vectors(adapter);
        } else {
-               free_irq(adapter->pdev->irq, netdev);
+               free_irq(adapter->pdev->irq, adapter);
        }
 }