Revert "of: net: support NVMEM cells with MAC in text format"
authorMichael Walle <michael@walle.cc>
Tue, 11 Jan 2022 08:12:06 +0000 (09:12 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Jan 2022 14:14:36 +0000 (14:14 +0000)
This reverts commit 9ed319e411915e882bb4ed99be3ae78667a70022.

We can already post process a nvmem cell value in a particular driver.
Instead of having yet another place to convert the values, the post
processing hook of the nvmem provider should be used in this case.

Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/of_net.c

index 95a64c813ae59e4dd2199f1d060348d90e72561e..f1a9bf7578e7a758f1201fcc38c821abbe7fcb03 100644 (file)
@@ -61,7 +61,7 @@ static int of_get_mac_addr_nvmem(struct device_node *np, u8 *addr)
 {
        struct platform_device *pdev = of_find_device_by_node(np);
        struct nvmem_cell *cell;
-       const void *buf;
+       const void *mac;
        size_t len;
        int ret;
 
@@ -78,32 +78,21 @@ static int of_get_mac_addr_nvmem(struct device_node *np, u8 *addr)
        if (IS_ERR(cell))
                return PTR_ERR(cell);
 
-       buf = nvmem_cell_read(cell, &len);
+       mac = nvmem_cell_read(cell, &len);
        nvmem_cell_put(cell);
 
-       if (IS_ERR(buf))
-               return PTR_ERR(buf);
-
-       ret = 0;
-       if (len == ETH_ALEN) {
-               if (is_valid_ether_addr(buf))
-                       memcpy(addr, buf, ETH_ALEN);
-               else
-                       ret = -EINVAL;
-       } else if (len == 3 * ETH_ALEN - 1) {
-               u8 mac[ETH_ALEN];
-
-               if (mac_pton(buf, mac))
-                       memcpy(addr, mac, ETH_ALEN);
-               else
-                       ret = -EINVAL;
-       } else {
-               ret = -EINVAL;
+       if (IS_ERR(mac))
+               return PTR_ERR(mac);
+
+       if (len != ETH_ALEN || !is_valid_ether_addr(mac)) {
+               kfree(mac);
+               return -EINVAL;
        }
 
-       kfree(buf);
+       memcpy(addr, mac, ETH_ALEN);
+       kfree(mac);
 
-       return ret;
+       return 0;
 }
 
 /**