ixgbe: fix possible divide by zero in ixgbe_update_itr
authorDon Skidmore <donald.c.skidmore@intel.com>
Sat, 2 Mar 2013 07:17:37 +0000 (07:17 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 25 Apr 2013 00:29:02 +0000 (17:29 -0700)
Protect the code by bailing out of ixgbe_update_itr() when this occurs.
The next call to ixgbe_update_itr will continue to dynamically update ITR.

Signed-of-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

index 6225f880a3f455a342a1abe0dc9a76bf15b8a737..9afc959c1499891dffaa40dd19b56885e490ffbf 100644 (file)
@@ -2095,6 +2095,9 @@ static void ixgbe_update_itr(struct ixgbe_q_vector *q_vector,
         */
        /* what was last interrupt timeslice? */
        timepassed_us = q_vector->itr >> 2;
+       if (timepassed_us == 0)
+               return;
+
        bytes_perint = bytes / timepassed_us; /* bytes/usec */
 
        switch (itr_setting) {