diff options
author | Sujith Manoharan <c_manoha@qca.qualcomm.com> | 2014-01-14 12:11:17 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-01-16 23:55:42 +0400 |
commit | 3b24e9f8c07fc09174e4f2fe4d0f716595ae2146 (patch) | |
tree | a192202cad2c0f9ee0d024c55a52b62963009553 | |
parent | 522aaa182a8d942d29e37e1f80b3f5b3c68cc475 (diff) | |
download | linux-3b24e9f8c07fc09174e4f2fe4d0f716595ae2146.tar.xz |
ath9k: Fix possible overflow condition
Prevent a possible overflow condition which results in occasional
bad IQ coefficients and EVM numbers.
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9003_calib.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c index 4eb35aa64f35..a352128c40ad 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c @@ -565,7 +565,7 @@ static bool ar9003_hw_solve_iq_cal(struct ath_hw *ah, const s32 result_shift = 1 << 15; struct ath_common *common = ath9k_hw_common(ah); - f2 = (f1 * f1 + f3 * f3) / result_shift; + f2 = ((f1 >> 3) * (f1 >> 3) + (f3 >> 3) * (f3 >> 3)) >> 9; if (!f2) { ath_dbg(common, CALIBRATE, "Divide by 0\n"); |