]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ixgbe: Correct Adaptive Interrupt Moderation so that it will change values
authorAlexander Duyck <alexander.h.duyck@intel.com>
Wed, 8 Feb 2012 07:49:43 +0000 (07:49 +0000)
committerJoe Jin <joe.jin@oracle.com>
Thu, 17 May 2012 15:04:30 +0000 (23:04 +0800)
This change corrects an issue in which Adaptive Interrupt Moderation was
not changing values due to the fact that we were performing an and
operation on the resultant value that was causing the value to never change
from the default 20K interrupts per second.

(cherry picked from commit 5d967eb7f84d2761d624d033c2583187b37b56ce)
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/ixgbe/ixgbe_main.c

index 924ed4ce433ab3693b0b9232ddb523c4a2ef16dd..2a601ddce73c97922343a236f1407960083284ff 100644 (file)
@@ -1829,7 +1829,7 @@ void ixgbe_write_eitr(struct ixgbe_q_vector *q_vector)
        struct ixgbe_adapter *adapter = q_vector->adapter;
        struct ixgbe_hw *hw = &adapter->hw;
        int v_idx = q_vector->v_idx;
-       u32 itr_reg = q_vector->itr;
+       u32 itr_reg = q_vector->itr & IXGBE_MAX_EITR;
 
        switch (adapter->hw.mac.type) {
        case ixgbe_mac_82598EB:
@@ -1881,7 +1881,7 @@ static void ixgbe_set_itr(struct ixgbe_q_vector *q_vector)
                          ((9 * new_itr) + q_vector->itr);
 
                /* save the algorithm value here */
-               q_vector->itr = new_itr & IXGBE_MAX_EITR;
+               q_vector->itr = new_itr;
 
                ixgbe_write_eitr(q_vector);
        }