diff options
author | Don Skidmore <donald.c.skidmore@intel.com> | 2013-03-02 02:17:37 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2013-04-24 20:29:02 -0400 |
commit | bdbeefe8ea8c7aa1e00397641e1f3dfa41a20968 (patch) | |
tree | 24462633c17118c7cb61c2de997047f40b82cba9 | |
parent | 01f27fc085574b301248d4da241e9d5ebd61e5c9 (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.c | 3 |
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, | |||
2095 | */ | 2095 | */ |
2096 | /* what was last interrupt timeslice? */ | 2096 | /* what was last interrupt timeslice? */ |
2097 | timepassed_us = q_vector->itr >> 2; | 2097 | timepassed_us = q_vector->itr >> 2; |
2098 | if (timepassed_us == 0) | ||
2099 | return; | ||
2100 | |||
2098 | bytes_perint = bytes / timepassed_us; /* bytes/usec */ | 2101 | bytes_perint = bytes / timepassed_us; /* bytes/usec */ |
2099 | 2102 | ||
2100 | switch (itr_setting) { | 2103 | switch (itr_setting) { |