cppcheck reports drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c:1414:22: error: Array 'iqk_info->iqk_mcc_ch[2][4]' accessed at index iqk_info->iqk_mcc_ch[2][*], which is out of bounds. [arrayIndexOutOfBounds] iqk_info->iqk_mcc_ch[idx][path] = chan->channel; ^ drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c:1393:2: note: After for loop, idx has value 2 for (idx = 0; idx < RTW89_IQK_CHS_NR; idx++) { ^ drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c:1414:22: note: Array index out of bounds iqk_info->iqk_mcc_ch[idx][path] = chan->channel; ^ drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c:1424:38: error: Array 'iqk_info->iqk_mcc_ch[2][4]' accessed at index iqk_info->iqk_mcc_ch[2][*], which is out of bounds. [arrayIndexOutOfBounds] idx, path, iqk_info->iqk_mcc_ch[idx][path]); ^ drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c:1393:2: note: After for loop, idx has value 2 for (idx = 0; idx < RTW89_IQK_CHS_NR; idx++) { ^ drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c:1424:38: note: Array index out of bounds idx, path, iqk_info->iqk_mcc_ch[idx][path]); ^ Fixes: f2abe804e823 ("wifi: rtw89: 8852b: rfk: add IQK") Signed-off-by: lilinmao <lilinmao@xxxxxxxxxx> --- drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c index 259df67836a0..03dec3f4e7ba 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c @@ -1388,17 +1388,15 @@ static void _iqk_get_ch_info(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy, u u32 reg_rf18; u32 reg_35c; u8 idx; - u8 get_empty_table = false; for (idx = 0; idx < RTW89_IQK_CHS_NR; idx++) { if (iqk_info->iqk_mcc_ch[idx][path] == 0) { - get_empty_table = true; break; } } rtw89_debug(rtwdev, RTW89_DBG_RFK, "[IQK] (1)idx = %x\n", idx); - if (!get_empty_table) { + if (idx > RTW89_IQK_CHS_NR - 1) { idx = iqk_info->iqk_table_idx[path] + 1; if (idx > 1) idx = 0; -- 2.25.1