2014-06-24 08:45:47

by Daniel Walter

[permalink] [raw]
Subject: [PATCH v2] arch/mips rb532: replace mac_addr parsing

Replace parse_mac_addr with sscanf.


Signed-off-by: Daniel Walter <[email protected]>
---
Changes since v1:
sending in the working patch
Patch applies against current linux-tree
---
arch/mips/rb532/devices.c | 30 +++++++-----------------------
1 file changed, 7 insertions(+), 23 deletions(-)
---
diff --git a/arch/mips/rb532/devices.c b/arch/mips/rb532/devices.c
index 3af00b2..6e32819b 100644
--- a/arch/mips/rb532/devices.c
+++ b/arch/mips/rb532/devices.c
@@ -250,28 +250,6 @@ static struct platform_device *rb532_devs[] = {
&rb532_wdt
};

-static void __init parse_mac_addr(char *macstr)
-{
- int i, h, l;
-
- for (i = 0; i < 6; i++) {
- if (i != 5 && *(macstr + 2) != ':')
- return;
-
- h = hex_to_bin(*macstr++);
- if (h == -1)
- return;
-
- l = hex_to_bin(*macstr++);
- if (l == -1)
- return;
-
- macstr++;
- korina_dev0_data.mac[i] = (h << 4) + l;
- }
-}
-
-
/* NAND definitions */
#define NAND_CHIP_DELAY 25

@@ -333,7 +311,13 @@ static int __init plat_setup_devices(void)
static int __init setup_kmac(char *s)
{
printk(KERN_INFO "korina mac = %s\n", s);
- parse_mac_addr(s);
+ sscanf(s, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx",
+ &korina_dev0_data.mac[0],
+ &korina_dev0_data.mac[1],
+ &korina_dev0_data.mac[2],
+ &korina_dev0_data.mac[3],
+ &korina_dev0_data.mac[4],
+ &korina_dev0_data.mac[5]);
return 0;
}


2014-06-24 10:13:38

by James Hogan

[permalink] [raw]
Subject: Re: [PATCH v2] arch/mips rb532: replace mac_addr parsing

Hi Daniel,

On 24/06/14 09:45, Daniel Walter wrote:
> @@ -333,7 +311,13 @@ static int __init plat_setup_devices(void)
> static int __init setup_kmac(char *s)
> {
> printk(KERN_INFO "korina mac = %s\n", s);
> - parse_mac_addr(s);
> + sscanf(s, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx",
> + &korina_dev0_data.mac[0],
> + &korina_dev0_data.mac[1],
> + &korina_dev0_data.mac[2],
> + &korina_dev0_data.mac[3],
> + &korina_dev0_data.mac[4],
> + &korina_dev0_data.mac[5]);

Does it make sense to go one better and use mac_pton() for this?

Cheers
James