MIPS: BCM63XX: Properly handle mac address octet overflow
authorJonas Gorski <jonas.gorski@gmail.com>
Tue, 18 Sep 2012 12:09:08 +0000 (14:09 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 1 Oct 2012 09:36:34 +0000 (11:36 +0200)
commitd21a7713464c7d35b2cce1fe7f7d87928d6a047e
tree7ab75a5e3f714ca7ad2eea77cd293bcd1c1d4a8c
parent0b3e06fdc68a06e68687da4eb009ff484bfab449
MIPS: BCM63XX: Properly handle mac address octet overflow

While calculating the mac address the pointer for the current octet was
never reset back to the least significant one after being decremented
because of an octet overflow. This resulted in the code continuing to
increment at the current octet, potentially generating duplicate or
invalid mac addresses.

As a second issue the pointer was allowed to advance up to the most
significant octet, modifying the OUI, and potentially changing the type
of mac address.

Rewrite the code so it resets the pointer to the least significant
in each outer loop step, and bails out when the least significant octet
of the OUI is reached.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Cc: linux-mips@linux-mips.org
Cc: Maxime Bizon <mbizon@freebox.fr>
Cc: Florian Fainelli <florian@openwrt.org>
Cc: Sergei Shtylyov <sshtylyov@mvista.com>
Patchwork: https://patchwork.linux-mips.org/patch/4348/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/bcm63xx/boards/board_bcm963xx.c