linux-mips
[Top] [All Lists]

Re: [PATCH 5/5] MIPS: BCM47xx: Fix mac address parsing.

To: Hauke Mehrtens <hauke@hauke-m.de>
Subject: Re: [PATCH 5/5] MIPS: BCM47xx: Fix mac address parsing.
From: Sergei Shtylyov <sshtylyov@mvista.com>
Date: Sat, 07 May 2011 19:04:32 +0400
Cc: ralf@linux-mips.org, linux-mips@linux-mips.org
In-reply-to: <1304771263-10937-6-git-send-email-hauke@hauke-m.de>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1304771263-10937-1-git-send-email-hauke@hauke-m.de> <1304771263-10937-6-git-send-email-hauke@hauke-m.de>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.21 (X11/20090320)
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@hauke-m.de>
---
 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

<Prev in Thread] Current Thread [Next in Thread>