From: Sujith Manoharan Date: Tue, 14 Jan 2014 08:11:17 +0000 (+0530) Subject: ath9k: Fix possible overflow condition X-Git-Tag: v3.14-rc1~94^2~3^2^2~14 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=3b24e9f8c07fc09174e4f2fe4d0f716595ae2146;p=linux-block.git 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 Signed-off-by: John W. Linville --- 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");