Message ID | 20200130013308.16395-1-natechancellor@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Series | rtw88: Initialize ret in rtw_wow_check_fw_status | expand |
From: Nathan Chancellor > Subject: [PATCH] rtw88: Initialize ret in rtw_wow_check_fw_status > > Clang warns a few times (trimmed for brevity): > > ../drivers/net/wireless/realtek/rtw88/wow.c:295:7: warning: variable > 'ret' is used uninitialized whenever 'if' condition is false > [-Wsometimes-uninitialized] > > Initialize ret to true and change the other assignments to false because > it is a boolean value. > > Fixes: 44bc17f7f5b3 ("rtw88: support wowlan feature for 8822c") > Link: https://github.com/ClangBuiltLinux/linux/issues/850 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> > --- > drivers/net/wireless/realtek/rtw88/wow.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/realtek/rtw88/wow.c > b/drivers/net/wireless/realtek/rtw88/wow.c > index af5c27e1bb07..5db49802c72c 100644 > --- a/drivers/net/wireless/realtek/rtw88/wow.c > +++ b/drivers/net/wireless/realtek/rtw88/wow.c > @@ -283,18 +283,18 @@ static void rtw_wow_rx_dma_start(struct rtw_dev > *rtwdev) > > static bool rtw_wow_check_fw_status(struct rtw_dev *rtwdev, bool > wow_enable) > { > - bool ret; > + bool ret = true; > > /* wait 100ms for wow firmware to finish work */ > msleep(100); > > if (wow_enable) { > if (!rtw_read8(rtwdev, REG_WOWLAN_WAKE_REASON)) > - ret = 0; > + ret = false; > } else { > if (rtw_read32_mask(rtwdev, REG_FE1IMR, BIT_FS_RXDONE) == 0 > && > rtw_read32_mask(rtwdev, REG_RXPKT_NUM, > BIT_RW_RELEASE) == 0) > - ret = 0; > + ret = false; > } > > if (ret) > -- > 2.25.0 NACK. This patch could lead to incorrect behavior of WOW. I will send a new patch to fix it, and change the type to "int". Yan-Hsuan
Tony Chuang <yhchuang@realtek.com> writes: > From: Nathan Chancellor >> Subject: [PATCH] rtw88: Initialize ret in rtw_wow_check_fw_status >> >> Clang warns a few times (trimmed for brevity): >> >> ../drivers/net/wireless/realtek/rtw88/wow.c:295:7: warning: variable >> 'ret' is used uninitialized whenever 'if' condition is false >> [-Wsometimes-uninitialized] >> >> Initialize ret to true and change the other assignments to false because >> it is a boolean value. >> >> Fixes: 44bc17f7f5b3 ("rtw88: support wowlan feature for 8822c") >> Link: https://github.com/ClangBuiltLinux/linux/issues/850 >> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> >> --- >> drivers/net/wireless/realtek/rtw88/wow.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/net/wireless/realtek/rtw88/wow.c >> b/drivers/net/wireless/realtek/rtw88/wow.c >> index af5c27e1bb07..5db49802c72c 100644 >> --- a/drivers/net/wireless/realtek/rtw88/wow.c >> +++ b/drivers/net/wireless/realtek/rtw88/wow.c >> @@ -283,18 +283,18 @@ static void rtw_wow_rx_dma_start(struct rtw_dev >> *rtwdev) >> >> static bool rtw_wow_check_fw_status(struct rtw_dev *rtwdev, bool >> wow_enable) >> { >> - bool ret; >> + bool ret = true; >> >> /* wait 100ms for wow firmware to finish work */ >> msleep(100); >> >> if (wow_enable) { >> if (!rtw_read8(rtwdev, REG_WOWLAN_WAKE_REASON)) >> - ret = 0; >> + ret = false; >> } else { >> if (rtw_read32_mask(rtwdev, REG_FE1IMR, BIT_FS_RXDONE) == 0 >> && >> rtw_read32_mask(rtwdev, REG_RXPKT_NUM, >> BIT_RW_RELEASE) == 0) >> - ret = 0; >> + ret = false; >> } >> >> if (ret) >> -- >> 2.25.0 > > NACK. > > This patch could lead to incorrect behavior of WOW. > I will send a new patch to fix it, and change the type to "int". Please send it separately so that I can queue it to v5.6.
diff --git a/drivers/net/wireless/realtek/rtw88/wow.c b/drivers/net/wireless/realtek/rtw88/wow.c index af5c27e1bb07..5db49802c72c 100644 --- a/drivers/net/wireless/realtek/rtw88/wow.c +++ b/drivers/net/wireless/realtek/rtw88/wow.c @@ -283,18 +283,18 @@ static void rtw_wow_rx_dma_start(struct rtw_dev *rtwdev) static bool rtw_wow_check_fw_status(struct rtw_dev *rtwdev, bool wow_enable) { - bool ret; + bool ret = true; /* wait 100ms for wow firmware to finish work */ msleep(100); if (wow_enable) { if (!rtw_read8(rtwdev, REG_WOWLAN_WAKE_REASON)) - ret = 0; + ret = false; } else { if (rtw_read32_mask(rtwdev, REG_FE1IMR, BIT_FS_RXDONE) == 0 && rtw_read32_mask(rtwdev, REG_RXPKT_NUM, BIT_RW_RELEASE) == 0) - ret = 0; + ret = false; } if (ret)
Clang warns a few times (trimmed for brevity): ../drivers/net/wireless/realtek/rtw88/wow.c:295:7: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] Initialize ret to true and change the other assignments to false because it is a boolean value. Fixes: 44bc17f7f5b3 ("rtw88: support wowlan feature for 8822c") Link: https://github.com/ClangBuiltLinux/linux/issues/850 Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> --- drivers/net/wireless/realtek/rtw88/wow.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)