[PATCH v2] IB/mlx4: silence GCC warning

From: Paul Bolle
Date: Thu Feb 21 2013 - 04:03:12 EST

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 <pebolle@xxxxxxxxxx>
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) {

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/