/**
* of_get_mac_address()
* @np: Caller's Device Node
-@@ -165,6 +186,7 @@ found:
- addr[5] = (mac_val >> 0) & 0xff;
- }
+@@ -130,17 +151,23 @@ int of_get_mac_address(struct device_nod
-+ of_add_mac_address(np, addr);
- return ret;
+ ret = of_get_mac_addr(np, "mac-address", addr);
+ if (!ret)
+- return 0;
++ goto found;
+
+ ret = of_get_mac_addr(np, "local-mac-address", addr);
+ if (!ret)
+- return 0;
++ goto found;
+
+ ret = of_get_mac_addr(np, "address", addr);
+ if (!ret)
+- return 0;
++ goto found;
+
+- return of_get_mac_addr_nvmem(np, addr);
++ ret = of_get_mac_addr_nvmem(np, addr);
++ if (ret)
++ return ret;
++
++found:
++ ret = of_add_mac_address(np, addr);
++ return ret;
}
EXPORT_SYMBOL(of_get_mac_address);
+