瀏覽代碼

FIRMWARE: bcm47xx_nvram: Replace mac address parsing

Replace sscanf() with mac_pton().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Cc: David S. Miller <davem@davemloft.net>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/17982/
Signed-off-by: James Hogan <jhogan@kernel.org>
Andy Shevchenko 8 年之前
父節點
當前提交
4d73b73ff7
共有 2 個文件被更改,包括 4 次插入15 次删除
  1. 1 0
      drivers/firmware/broadcom/Kconfig
  2. 3 15
      drivers/firmware/broadcom/bcm47xx_sprom.c

+ 1 - 0
drivers/firmware/broadcom/Kconfig

@@ -13,6 +13,7 @@ config BCM47XX_NVRAM
 config BCM47XX_SPROM
 config BCM47XX_SPROM
 	bool "Broadcom SPROM driver"
 	bool "Broadcom SPROM driver"
 	depends on BCM47XX_NVRAM
 	depends on BCM47XX_NVRAM
+	select GENERIC_NET_UTILS
 	help
 	help
 	  Broadcom devices store configuration data in SPROM. Accessing it is
 	  Broadcom devices store configuration data in SPROM. Accessing it is
 	  specific to the bus host type, e.g. PCI(e) devices have it mapped in
 	  specific to the bus host type, e.g. PCI(e) devices have it mapped in

+ 3 - 15
drivers/firmware/broadcom/bcm47xx_sprom.c

@@ -137,20 +137,6 @@ static void nvram_read_leddc(const char *prefix, const char *name,
 	*leddc_off_time = (val >> 16) & 0xff;
 	*leddc_off_time = (val >> 16) & 0xff;
 }
 }
 
 
-static void bcm47xx_nvram_parse_macaddr(char *buf, u8 macaddr[6])
-{
-	if (strchr(buf, ':'))
-		sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0],
-			&macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4],
-			&macaddr[5]);
-	else if (strchr(buf, '-'))
-		sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0],
-			&macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4],
-			&macaddr[5]);
-	else
-		pr_warn("Can not parse mac address: %s\n", buf);
-}
-
 static void nvram_read_macaddr(const char *prefix, const char *name,
 static void nvram_read_macaddr(const char *prefix, const char *name,
 			       u8 val[6], bool fallback)
 			       u8 val[6], bool fallback)
 {
 {
@@ -161,7 +147,9 @@ static void nvram_read_macaddr(const char *prefix, const char *name,
 	if (err < 0)
 	if (err < 0)
 		return;
 		return;
 
 
-	bcm47xx_nvram_parse_macaddr(buf, val);
+	strreplace(buf, '-', ':');
+	if (!mac_pton(buf, val))
+		pr_warn("Can not parse mac address: %s\n", buf);
 }
 }
 
 
 static void nvram_read_alpha2(const char *prefix, const char *name,
 static void nvram_read_alpha2(const char *prefix, const char *name,