summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDon Skidmore <donald.c.skidmore@intel.com>2013-03-02 07:17:37 +0000
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2013-04-24 17:29:02 -0700
commitbdbeefe8ea8c7aa1e00397641e1f3dfa41a20968 (patch)
tree24462633c17118c7cb61c2de997047f40b82cba9
parent01f27fc085574b301248d4da241e9d5ebd61e5c9 (diff)
ixgbe: fix possible divide by zero in ixgbe_update_itr
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>
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 6225f880a3f4..9afc959c1499 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -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) {