From dd07dd394d8bfdb5d527fab18ca54f20815ec4e4 Mon Sep 17 00:00:00 2001 From: Will Moss Date: Wed, 3 Aug 2022 13:48:55 +0000 Subject: [PATCH] of_net: do mac-address-increment only once Remove mac-address-increment and mac-address-increment-byte DT property after incrementing process to make sure MAC address would not get incremented more if this function is stared again. It could happen if device initialization is deferred after unsuccessful attempt. Signed-off-by: Will Moss --- drivers/of/of_net.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/drivers/of/of_net.c +++ b/drivers/of/of_net.c @@ -190,6 +190,12 @@ found: addr[3] = (mac_val >> 16) & 0xff; addr[4] = (mac_val >> 8) & 0xff; addr[5] = (mac_val >> 0) & 0xff; + + /* Remove mac-address-increment and mac-address-increment-byte + * DT property to make sure MAC address would not get incremented + * more if this function is stared again. */ + of_remove_property(np, of_find_property(np, "mac-address-increment", NULL)); + of_remove_property(np, of_find_property(np, "mac-address-increment-byte", NULL)); } of_add_mac_address(np, addr);