瀏覽代碼

qcacmn: Fix RCU issue due to infinite loop

Loop is continuing as chain index is getting assigned to zero inside loop.
Adding check for chain index to avoid infinite looping.

Change-Id: Ifff67c00b15d12195e5a3bf554de1529511c400f
CRs-Fixed: 3261913
aloksing 2 年之前
父節點
當前提交
89d0469b44
共有 1 個文件被更改,包括 6 次插入5 次删除
  1. 6 5
      dp/wifi3.0/monitor/dp_rx_mon.c

+ 6 - 5
dp/wifi3.0/monitor/dp_rx_mon.c

@@ -330,16 +330,17 @@ dp_rx_populate_rx_rssi_chain(struct hal_rx_ppdu_info *ppdu_info,
 {
 	uint8_t chain, bw;
 	uint8_t rssi;
+	uint8_t chain_rf;
 
 	for (chain = 0; chain < SS_COUNT; chain++) {
 		for (bw = 0; bw < MAX_BW; bw++) {
-			chain = dp_rx_mon_rf_index_conv(chain,
-							ppdu_info, pdev);
-			rssi = ppdu_info->rx_status.rssi_chain[chain][bw];
+			chain_rf = dp_rx_mon_rf_index_conv(chain,
+							   ppdu_info, pdev);
+			rssi = ppdu_info->rx_status.rssi_chain[chain_rf][bw];
 			if (rssi != DP_RSSI_INVAL)
-				cdp_rx_ppdu->rssi_chain[chain][bw] = rssi;
+				cdp_rx_ppdu->rssi_chain[chain_rf][bw] = rssi;
 			else
-				cdp_rx_ppdu->rssi_chain[chain][bw] = 0;
+				cdp_rx_ppdu->rssi_chain[chain_rf][bw] = 0;
 		}
 	}
 }