Dne 28.3.2017 v 09:59 Jiri Pirko napsal(a):
Tue, Mar 28, 2017 at 09:57:22AM CEST, j...@resnulli.us wrote:
Tue, Mar 28, 2017 at 09:42:58AM CEST, ivec...@redhat.com wrote:
Dne 28.3.2017 v 09:10 Jiri Pirko napsal(a):
Tue, Mar 28, 2017 at 12:48:34AM CEST, da...@davemloft.net wrote:

Please fix up these warnings and resubmit:

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c: In function 
‘mlxsw_sp_rif_counter_free’:
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:208:2: warning: 
‘p_counter_index’ may be used uninitialized in this function 
[-Wmaybe-uninitialized]
 mlxsw_sp_rif_counter_edit(mlxsw_sp, rif->rif_index,
 ^

This is I believe also gcc bug. Code looks fine. I'm not getting the warning
with gcc 6

No it is not a gcc bug. The function mlxsw_sp_rif_counter_free() is not
static so the compiler cannot know all its callers and so 'dir' parameter can
be theoretically anything.
You call mlxsw_sp_rif_p_counter_get() there it assumes dir can be only
MLXSW_SP_RIF_COUNTER_EGRESS or MLXSW_SP_RIF_COUNTER_INGRESS so initializes
*pp_counter_index only for them. For any other value the value is
uninitialized.

Interesting, why gcc 6.2.1 is silent then?

Oh, I see that it is not :) My bad, will fix, thanks!

Probably because 'dir' is enumeration and this gcc assumes that any caller uses only defined enum values.

Ivan

Reply via email to