Hi Simon, On 7/11/23 10:25, Simon Horman wrote: > On Sun, Jul 09, 2023 at 06:31:54AM -0700, Randy Dunlap wrote: >> Quieten a gcc (11.3.0) build error or warning by checking the function >> call status and returning -EBUSY if the function call failed. >> This is similar to what several other wireless drivers do for the >> SIOCGIWRATE ioctl call when there is a locking problem. >> >> drivers/net/wireless/cisco/airo.c: error: 'status_rid.currentXmitRate' is used uninitialized [-Werror=uninitialized] > > Hi Randy, > > There seem to be other calls to readStatusRid() in the same file > with similar properties. Perhaps it would be best to fix them too? > Yes, there are 40+ calls that could have problems. Please see this thread: https://lore.kernel.org/all/2f6ffd1c-a756-b7b8-bba4-77c2308f26b9@xxxxxxxxxxxxx/ This is an attempt to shut up the build error/warning, which only occurs after this one function call. For such an old driver/hardware, I don't plan to do massive surgery to it. >> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") >> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> >> Reported-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> >> Link: lore.kernel.org/r/39abf2c7-24a-f167-91da-ed4c5435d1c4@xxxxxxxxxxxxxx >> Cc: Kalle Valo <kvalo@xxxxxxxxxx> >> Cc: linux-wireless@xxxxxxxxxxxxxxx >> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> >> Cc: Eric Dumazet <edumazet@xxxxxxxxxx> >> Cc: Jakub Kicinski <kuba@xxxxxxxxxx> >> Cc: Paolo Abeni <pabeni@xxxxxxxxxx> >> Cc: netdev@xxxxxxxxxxxxxxx >> --- >> drivers/net/wireless/cisco/airo.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff -- a/drivers/net/wireless/cisco/airo.c b/drivers/net/wireless/cisco/airo.c >> --- a/drivers/net/wireless/cisco/airo.c >> +++ b/drivers/net/wireless/cisco/airo.c >> @@ -6157,8 +6157,11 @@ static int airo_get_rate(struct net_devi >> struct iw_param *vwrq = &wrqu->bitrate; >> struct airo_info *local = dev->ml_priv; >> StatusRid status_rid; /* Card status info */ >> + int ret; >> >> - readStatusRid(local, &status_rid, 1); >> + ret = readStatusRid(local, &status_rid, 1); >> + if (ret) >> + return -EBUSY; >> >> vwrq->value = le16_to_cpu(status_rid.currentXmitRate) * 500000; >> /* If more than one rate, set auto */ >> -- ~Randy