Hi Arnd, On Fri, Jul 7, 2017 at 4:14 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Fri, Jul 7, 2017 at 12:04 PM, Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> wrote: >> Erik Stromdahl <erik.stromdahl@xxxxxxxxx> writes: >>>> With gcc 4.1.2: >>>> >>>> drivers/net/wireless/ath/ath10k/sdio.c: In function >>>> ‘ath10k_sdio_mbox_rxmsg_pending_handler’: >>>> drivers/net/wireless/ath/ath10k/sdio.c:676: warning: ‘ret’ may be used >>>> uninitialized in this function >>>> >>>>> + >>>>> + *done = true; >>>>> + >>>>> + /* Copy the lookahead obtained from the HTC register table into our >>>>> + * temp array as a start value. >>>>> + */ >>>>> + lookaheads[0] = msg_lookahead; >>>>> + >>>>> + timeout = jiffies + SDIO_MBOX_PROCESSING_TIMEOUT_HZ; >>>> >>>> Although very unlikely due to the long timeout, if the code is preempted here, >>>> and the loop below never entered, ret will indeed be uninitialized. >>>> >>>> It's unclear to me what the proper initialization would be, though, so >>>> that's why I didn't send a patch. >>>> >>> I think it would be best to use 0 as initial value of ret in this case. >>> This will make all other interrupts be processed in a normal way. >>> >>> Kalle: Should I create a new patch (initializing ret with zero)? >> >> Yes, please send a new patch fixing this. >> >> But I don't like that much with the style of initialising ret to zero, >> it tends to hide things. Instead my preference is something like below >> where the error handling is more explicit and easier to find where it's >> exactly failing. But that's just an example how I would try to solve it, >> it still lacks the handling of -ECANCEL etc. > > I think I would simply replace the "while() {}" loop with "do{} while()", > as that would guarantee it to be run at least once in a way that the > compiler can see. Right, that's probably the simplest and cleanest solution. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds