Replace parse_mac_addr with mac_pton(). Signed-off-by: Daniel Walter <dwalter@xxxxxxxxxx> --- Changes since v2 Use mac_pton() instead of sscanf() added error handling in case could not be parsed --- Patch applies against current linux-git --- arch/mips/rb532/devices.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) --- diff --git a/arch/mips/rb532/devices.c b/arch/mips/rb532/devices.c index 3af00b2..03a4cdc 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,10 @@ 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); + if (!mac_pton(s, korina_dev0_data.mac)) { + printk(KERN_ERR "Invalid mac\n"); + return -EINVAL; + } return 0; }