aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
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 /drivers
parentMerge branch 'bnx2x' (diff)
downloadlinux-dev-bdbeefe8ea8c7aa1e00397641e1f3dfa41a20968.tar.xz
linux-dev-bdbeefe8ea8c7aa1e00397641e1f3dfa41a20968.zip
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>
Diffstat (limited to 'drivers')
-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) {