Przeglądaj źródła

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>
Sujith Manoharan 11 lat temu
rodzic
commit
3b24e9f8c0
1 zmienionych plików z 1 dodań i 1 usunięć
  1. 1 1
      drivers/net/wireless/ath/ath9k/ar9003_calib.c

+ 1 - 1
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");