Re: [PATCH/RFC] RDMA/iwpm: Fix uninitialized error code in iwpm_send_mapinfo()

From: Arnd Bergmann
Date: Thu Nov 16 2017 - 06:32:17 EST


On Thu, Nov 16, 2017 at 12:05 PM, Geert Uytterhoeven
<geert@xxxxxxxxxxxxxx> wrote:
> Hi Arnd,
>
> On Thu, Nov 16, 2017 at 11:50 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
>> On Thu, Nov 16, 2017 at 11:26 AM, Geert Uytterhoeven
>> <geert@xxxxxxxxxxxxxx> wrote:
>>> With gcc-4.1.2:
>>>
>>> drivers/infiniband/core/iwpm_util.c: In function âiwpm_send_mapinfoâ:
>>> drivers/infiniband/core/iwpm_util.c:647: warning: âretâ may be used uninitialized in this function
>>>
>>> Indeed, if nl_client is not found in any of the scanned has buckets, ret
>>> will be used uninitialized.
>>>
>>> Preinitialize ret to zero to fix this.
>>>
>>> Fixes: 30dc5e63d6a5ad24 ("RDMA/core: Add support for iWARP Port Mapper user space service")
>>> Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
>>> ---
>>> RFC as I have no idea if this can ever happen, and if yes, what's the
>>> correct behavior to handle it:
>>> - return 0,
>>> - return an error code,
>>> - don't send anything,
>>> - anything else?
>>
>> This looks like a reasonable warning. I don't see on my box with any compiler
>> version. Do you have a configuration I can use to reproduce it, I'd just like
>> to see out of curiosity which other compilers report it.
>
> m68k/allmodconfig

I see my problem now, my randconfig test series has a patch I never sent
out, see https://pastebin.com/ZJDHP7g4 ;-)

With plan linux-next, I see the warning on x86 with gcc-4.3 and older, but
not on newer gcc versions or clang (I tried them all).

I also see that x86 builds broke again in recent kernels with gcc-4.2
and older unless you revert ec1e1b610917 ("objtool: Prevent GCC
from merging annotate_unreachable(), take 2").

Arnd