aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2017-12-21 09:40:55 -0500
committerJames Hogan <jhogan@kernel.org>2018-03-09 06:22:21 -0500
commit4d73b73ff7943c92e8bcb65fece8caa70c24db87 (patch)
tree753df7217815f2b78f0d07c11935e5573be4c700
parentb68c2575810521e470466b5faf4b79e796d12d74 (diff)
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>
-rw-r--r--drivers/firmware/broadcom/Kconfig1
-rw-r--r--drivers/firmware/broadcom/bcm47xx_sprom.c18
2 files changed, 4 insertions, 15 deletions
diff --git a/drivers/firmware/broadcom/Kconfig b/drivers/firmware/broadcom/Kconfig
index 3c7e5b741e37..f77cdb3a041f 100644
--- a/drivers/firmware/broadcom/Kconfig
+++ b/drivers/firmware/broadcom/Kconfig
@@ -13,6 +13,7 @@ config BCM47XX_NVRAM
13config BCM47XX_SPROM 13config BCM47XX_SPROM
14 bool "Broadcom SPROM driver" 14 bool "Broadcom SPROM driver"
15 depends on BCM47XX_NVRAM 15 depends on BCM47XX_NVRAM
16 select GENERIC_NET_UTILS
16 help 17 help
17 Broadcom devices store configuration data in SPROM. Accessing it is 18 Broadcom devices store configuration data in SPROM. Accessing it is
18 specific to the bus host type, e.g. PCI(e) devices have it mapped in 19 specific to the bus host type, e.g. PCI(e) devices have it mapped in
diff --git a/drivers/firmware/broadcom/bcm47xx_sprom.c b/drivers/firmware/broadcom/bcm47xx_sprom.c
index 62aa3cf09b4d..4787f86c8ac1 100644
--- a/drivers/firmware/broadcom/bcm47xx_sprom.c
+++ b/drivers/firmware/broadcom/bcm47xx_sprom.c
@@ -137,20 +137,6 @@ static void nvram_read_leddc(const char *prefix, const char *name,
137 *leddc_off_time = (val >> 16) & 0xff; 137 *leddc_off_time = (val >> 16) & 0xff;
138} 138}
139 139
140static void bcm47xx_nvram_parse_macaddr(char *buf, u8 macaddr[6])
141{
142 if (strchr(buf, ':'))
143 sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0],
144 &macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4],
145 &macaddr[5]);
146 else if (strchr(buf, '-'))
147 sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0],
148 &macaddr[1], &macaddr[2], &macaddr[3], &macaddr[4],
149 &macaddr[5]);
150 else
151 pr_warn("Can not parse mac address: %s\n", buf);
152}
153
154static void nvram_read_macaddr(const char *prefix, const char *name, 140static void nvram_read_macaddr(const char *prefix, const char *name,
155 u8 val[6], bool fallback) 141 u8 val[6], bool fallback)
156{ 142{
@@ -161,7 +147,9 @@ static void nvram_read_macaddr(const char *prefix, const char *name,
161 if (err < 0) 147 if (err < 0)
162 return; 148 return;
163 149
164 bcm47xx_nvram_parse_macaddr(buf, val); 150 strreplace(buf, '-', ':');
151 if (!mac_pton(buf, val))
152 pr_warn("Can not parse mac address: %s\n", buf);
165} 153}
166 154
167static void nvram_read_alpha2(const char *prefix, const char *name, 155static void nvram_read_alpha2(const char *prefix, const char *name,