diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index 60b927eab2b1b0ee94f706f5f7f1e41732623fc3..fad45316200aa0fbcb115e3f6b4ec56a24ca29cd 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -632,8 +632,9 @@ static int mlx4_en_get_qp(struct mlx4_en_priv *priv)
 	if (err)
 		goto steer_err;
 
-	if (mlx4_en_tunnel_steer_add(priv, priv->dev->dev_addr, *qpn,
-				     &priv->tunnel_reg_id))
+	err = mlx4_en_tunnel_steer_add(priv, priv->dev->dev_addr, *qpn,
+				       &priv->tunnel_reg_id);
+	if (err)
 		goto tunnel_err;
 
 	entry = kmalloc(sizeof(*entry), GFP_KERNEL);