Hello.
Hauke Mehrtens wrote:
Some devices like the Netgear WGT634u are using minuses between the
blocks of the mac address and other devices are using colons to
separate them.
Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
---
arch/mips/include/asm/mach-bcm47xx/nvram.h | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/arch/mips/include/asm/mach-bcm47xx/nvram.h b/arch/mips/include/asm/mach-bcm47xx/nvram.h
index 9759588..fcdeca7 100644
--- a/arch/mips/include/asm/mach-bcm47xx/nvram.h
+++ b/arch/mips/include/asm/mach-bcm47xx/nvram.h
@@ -39,8 +39,15 @@ extern int nvram_getenv(char *name, char *val, size_t val_len);
static inline void nvram_parse_macaddr(char *buf, u8 *macaddr)
{
- sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0], &macaddr[1],
- &macaddr[2], &macaddr[3], &macaddr[4], &macaddr[5]);
+ 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 {
+ printk(KERN_WARNING "Can not parse mac address: %s\n", buf);
+ }
}
#endif
checkcptach.pl says:
WARNING: line over 80 characters
#21: FILE: arch/mips/include/asm/mach-bcm47xx/nvram.h:43:
+ sscanf(buf, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddr[0], &macaddr[1],
WARNING: line over 80 characters
#24: FILE: arch/mips/include/asm/mach-bcm47xx/nvram.h:46:
+ sscanf(buf, "%hhx-%hhx-%hhx-%hhx-%hhx-%hhx", &macaddr[0], &macaddr[1],
total: 0 errors, 2 warnings, 17 lines checked
patches/MIPS-BCM47xx-Fix-mac-address-parsing.patch has style problems, please
review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Additionally, though the script doesn't warn about this, {} are not
necessary -- every branch is really a single statement.
WBR, Sergei