> Subject: [RFC] rtw88: fix subscript above array bounds compiler warning > > My compiler complain about: > > drivers/net/wireless/realtek/rtw88/phy.c: In function > ‘rtw_phy_rf_power_2_rssi’: > drivers/net/wireless/realtek/rtw88/phy.c:430:26: warning: array subscript is > above array bounds [-Warray-bounds] > linear = db_invert_table[i][j]; > > According to comment power_db should be in range 1 ~ 96 . > Correct rtw_phy_power_2_db() to make max power 96 db > (still min is 0). This make the warning gone. > > However power >= 20 check still looks somewhat suspicious to me. > > Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx> > --- > drivers/net/wireless/realtek/rtw88/phy.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/realtek/rtw88/phy.c > b/drivers/net/wireless/realtek/rtw88/phy.c > index 35a35dbca85f..a716a44d78b0 100644 > --- a/drivers/net/wireless/realtek/rtw88/phy.c > +++ b/drivers/net/wireless/realtek/rtw88/phy.c > @@ -410,12 +410,12 @@ void rtw_phy_dynamic_mechanism(struct rtw_dev > *rtwdev) > > static u8 rtw_phy_power_2_db(s8 power) > { > - if (power <= -100 || power >= 20) > + if (power <= -96 || power >= 20) > return 0; > else if (power >= 0) > - return 100; > + return 96; > else > - return 100 + power; > + return 96 + power; > } > > static u64 rtw_phy_db_2_linear(u8 power_db) > -- I think I should check with the radio team, that if the power from the rx descriptor generated by hardware can possibly get >= 20 And also check what the actual logic they expected to deal with the power. Thanks for reporting it. Yan-Hsuan