Building qp.o (part of the "Mellanox ConnectX HCA support" driver) triggers this GCC warning: drivers/infiniband/hw/mlx4/qp.c: In function ‘mlx4_ib_post_send’: drivers/infiniband/hw/mlx4/qp.c:1862:30: warning: ‘vlan’ may be used uninitialized in this function [-Wmaybe-uninitialized] drivers/infiniband/hw/mlx4/qp.c:1752:6: note: ‘vlan’ was declared here
Looking at the code it is clear 'vlan' is only set and used if 'is_eth' is non-zero. But by, basically, initializing 'vlan' to 0xffff, instead of the equivalent of initializing 'is_vlan' to zero, we can make this warning go away. Signed-off-by: Paul Bolle <pebo...@tiscali.nl> --- 0) Jack wanted to use uninitialized_var() after I posted the first version of this trivial patch. I suggested to see what happened with Ingo's idea to remove uninitialized_var() entirely. Nothing seems to have happened, so I decided to try a different approach. 1) Still compile tested only, but now against v3.8. drivers/infiniband/hw/mlx4/qp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c index 19e0637..512fde3 100644 --- a/drivers/infiniband/hw/mlx4/qp.c +++ b/drivers/infiniband/hw/mlx4/qp.c @@ -1747,9 +1747,9 @@ static int build_mlx_header(struct mlx4_ib_sqp *sqp, struct ib_send_wr *wr, int spc; int i; int is_eth; - int is_vlan = 0; + int is_vlan; int is_grh; - u16 vlan; + u16 vlan = 0xffff; /* invalid vlan id */ int err = 0; send_size = 0; @@ -1778,8 +1778,8 @@ static int build_mlx_header(struct mlx4_ib_sqp *sqp, struct ib_send_wr *wr, } vlan = rdma_get_vlan_id(&sgid); - is_vlan = vlan < 0x1000; } + is_vlan = vlan < 0x1000; ib_ud_header_init(send_size, !is_eth, is_eth, is_vlan, is_grh, 0, &sqp->ud_header); if (!is_eth) { -- 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/