Re: [PATCH net-next] selftests: net: cleanup busy_poller.c

From: Joe Damato
Date: Tue Dec 03 2024 - 11:36:06 EST


On Tue, Dec 03, 2024 at 08:26:11AM -0800, Joe Damato wrote:
> On Mon, Dec 02, 2024 at 09:14:58PM -0800, Stanislav Fomichev wrote:
> > On 12/03, Joe Damato wrote:
> > > Fix various integer type conversions by using strtoull and a temporary
> > > variable which is bounds checked before being casted into the
> > > appropriate cfg_* variable for use by the test program.
> > >
> > > While here, free the strdup'd cfg string for overall hygenie.
> >
> > Thank you for fixing this! I also saw them this morning after a net-next
> > pull and was about to post... I also see the following (LLVM=1):
> >
> > busy_poller.c:237:6: warning: variable 'napi_id' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
> > 237 | if (napi_list->obj._present.id)
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > busy_poller.c:243:38: note: uninitialized use occurs here
> > 243 | netdev_napi_set_req_set_id(set_req, napi_id);
> > | ^~~~~~~
> > busy_poller.c:237:2: note: remove the 'if' if its condition is always true
> > 237 | if (napi_list->obj._present.id)
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > 238 | napi_id = napi_list->obj.id;
> > | ~
> > 239 | else
> > | ~~~~
> > 240 | error(1, 0, "napi ID not present?");
> > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > busy_poller.c:226:18: note: initialize the variable 'napi_id' to silence this warning
> > 226 | uint32_t napi_id;
> > | ^
> > | = 0
> > 1 warning generated.
> >
> > Presumably the compiler can't connect that fact that (!preset.id) ->
> > error. So maybe initialize napi_id to 0 to suppress it as well?
>
> Thanks for the report! Can I ask what compiler and version you are
> using so that I can test before reposting?

Err, sorry. Haven't had coffee yet. I see you mentioned LLVM=1
above. When I use that I also get the same error.

FWIW: I'm using clang version 10.0.0-4ubuntu1 (which as far as I
can tell is pretty old). I'll see if I can get a newer version just
to make sure no other warnings appear.