]> git.hungrycats.org Git - linux/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Jul 2017 05:00:08 +0000 (07:00 +0200)
[ Upstream commit d968f0f2e4404152f37ed2384b4a2269dd2dae5a ]

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c

index 8fa23f6a1f67f6494168455a58c5a7b1ee35cae5..2eb54d36e16eac77e3a9d0387758d66b51584bd3 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);
 }