net: mvpp2: fix the mac address used when using PPv2.2
authorAntoine Tenart <antoine.tenart@free-electrons.com>
Fri, 25 Aug 2017 14:14:17 +0000 (16:14 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Aug 2017 18:24:52 +0000 (11:24 -0700)
The mac address is only retrieved from h/w when using PPv2.1. Otherwise
the variable holding it is still checked and used if it contains a valid
value. As the variable isn't initialized to an invalid mac address
value, we end up with random mac addresses which can be the same for all
the ports handled by this PPv2 driver.

Fixes this by initializing the h/w mac address variable to {0}, which is
an invalid mac address value. This way the random assignation fallback
is called and all ports end up with their own addresses.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Fixes: 2697582144dd ("net: mvpp2: handle misc PPv2.1/PPv2.2 differences")
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvpp2.c

index 48d21c1e09f27b74c67179a82ec3ab5af9b41d6b..4d598ca8503a50952576354ae35f1b3b6a574b6e 100644 (file)
@@ -6504,7 +6504,7 @@ static int mvpp2_port_probe(struct platform_device *pdev,
        struct resource *res;
        const char *dt_mac_addr;
        const char *mac_from;
-       char hw_mac_addr[ETH_ALEN];
+       char hw_mac_addr[ETH_ALEN] = {0};
        u32 id;
        int features;
        int phy_mode;