On 8/3/25 21:22, Ping-Ke Shih wrote: > When driver receives new or unknown C2H events, it print out messages > repeatedly once events are received, like > > rtw89_8922ae 0000:81:00.0: PHY c2h class 2 not support > > To avoid the thousands of messages, use rtw89_info_once() instead. Also, > print out class/func for unknown (undefined) class. > > Reported-by: Sean Anderson <sean.anderson@xxxxxxxxx> > Closes: https://lore.kernel.org/linux-wireless/20250729204437.164320-1-sean.anderson@xxxxxxxxx/ > Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx> > --- > drivers/net/wireless/realtek/rtw89/debug.h | 1 + > drivers/net/wireless/realtek/rtw89/mac.c | 7 +++---- > drivers/net/wireless/realtek/rtw89/phy.c | 7 +++---- > 3 files changed, 7 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/wireless/realtek/rtw89/debug.h b/drivers/net/wireless/realtek/rtw89/debug.h > index fc690f7c55dc..a364e7adb079 100644 > --- a/drivers/net/wireless/realtek/rtw89/debug.h > +++ b/drivers/net/wireless/realtek/rtw89/debug.h > @@ -56,6 +56,7 @@ static inline void rtw89_debugfs_deinit(struct rtw89_dev *rtwdev) {} > #endif > > #define rtw89_info(rtwdev, a...) dev_info((rtwdev)->dev, ##a) > +#define rtw89_info_once(rtwdev, a...) dev_info_once((rtwdev)->dev, ##a) > #define rtw89_warn(rtwdev, a...) dev_warn((rtwdev)->dev, ##a) > #define rtw89_err(rtwdev, a...) dev_err((rtwdev)->dev, ##a) > > diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c > index 5a5da9d9c0c5..ef17a307b770 100644 > --- a/drivers/net/wireless/realtek/rtw89/mac.c > +++ b/drivers/net/wireless/realtek/rtw89/mac.c > @@ -5813,12 +5813,11 @@ void rtw89_mac_c2h_handle(struct rtw89_dev *rtwdev, struct sk_buff *skb, > case RTW89_MAC_C2H_CLASS_ROLE: > return; > default: > - rtw89_info(rtwdev, "MAC c2h class %d not support\n", class); > - return; > + break; > } > if (!handler) { > - rtw89_info(rtwdev, "MAC c2h class %d func %d not support\n", class, > - func); > + rtw89_info_once(rtwdev, "MAC c2h class %d func %d not support\n", > + class, func); > return; > } > handler(rtwdev, skb, len); > diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c > index d607577b353c..01a03d2de3ff 100644 > --- a/drivers/net/wireless/realtek/rtw89/phy.c > +++ b/drivers/net/wireless/realtek/rtw89/phy.c > @@ -3626,12 +3626,11 @@ void rtw89_phy_c2h_handle(struct rtw89_dev *rtwdev, struct sk_buff *skb, > handler = rtw89_phy_c2h_dm_handler[func]; > break; > default: > - rtw89_info(rtwdev, "PHY c2h class %d not support\n", class); > - return; > + break; > } > if (!handler) { > - rtw89_info(rtwdev, "PHY c2h class %d func %d not support\n", class, > - func); > + rtw89_info_once(rtwdev, "PHY c2h class %d func %d not support\n", > + class, func); > return; > } > handler(rtwdev, skb, len); Reviewed-by: Sean Anderson <sean.anderson@xxxxxxxxx>