net/mlx5e: Initialize CEE's getpermhwaddr address buffer to 0xff
authorHuy Nguyen <huyn@mellanox.com>
Thu, 29 Jun 2017 21:50:01 +0000 (16:50 -0500)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 6 Jul 2017 12:13:20 +0000 (15:13 +0300)
Latest change in open-lldp code uses bytes 6-11 of perm_addr buffer
as the Ethernet source address for the host TLV packet.
Since our driver does not fill these bytes, they stay at zero and
the open-lldp code ends up sending the TLV packet with zero source
address and the switch drops this packet.

The fix is to initialize these bytes to 0xff. The open-lldp code
considers 0xff:ff:ff:ff:ff:ff as the invalid address and falls back to
use the host's mac address as the Ethernet source address.

Fixes: 3a6a931dfb8e ("net/mlx5e: Support DCBX CEE API")
Signed-off-by: Huy Nguyen <huyn@mellanox.com>
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c

index 8fa23f6..2eb54d3 100644 (file)
@@ -464,6 +464,8 @@ static void mlx5e_dcbnl_getpermhwaddr(struct net_device *netdev,
        if (!perm_addr)
                return;
 
+       memset(perm_addr, 0xff, MAX_ADDR_LEN);
+
        mlx5_query_nic_vport_mac_address(priv->mdev, 0, perm_addr);
 }