Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/47405 )
Change subject: mb/siemens/mc_apl1: Simplify is_mac_adr_valid() logic ......................................................................
mb/siemens/mc_apl1: Simplify is_mac_adr_valid() logic
A MAC address that is neither 00:00:00:00:00:00 nor ff:ff:ff:ff:ff:ff is considered valid. Instead of using a temporary buffer and memcmp(), use a single loop that exits as soon as the MAC cannot possibly be invalid.
Change-Id: I2b15b510092860fbbefd150c9060da38aeb13311 Signed-off-by: Angel Pons th3fanbus@gmail.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/47405 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Werner Zeh werner.zeh@siemens.com Reviewed-by: Mario Scheithauer mario.scheithauer@siemens.com Reviewed-by: Uwe Poeche uwe.poeche@siemens.com --- M src/mainboard/siemens/mc_apl1/mainboard.c 1 file changed, 7 insertions(+), 9 deletions(-)
Approvals: build bot (Jenkins): Verified Werner Zeh: Looks good to me, approved Mario Scheithauer: Looks good to me, but someone else must approve Uwe Poeche: Looks good to me, but someone else must approve
diff --git a/src/mainboard/siemens/mc_apl1/mainboard.c b/src/mainboard/siemens/mc_apl1/mainboard.c index ff0cc59..9540d6d 100644 --- a/src/mainboard/siemens/mc_apl1/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/mainboard.c @@ -35,15 +35,13 @@ */ static uint8_t is_mac_adr_valid(uint8_t mac[MAC_ADDR_LEN]) { - uint8_t buf[MAC_ADDR_LEN]; - - memset(buf, 0, sizeof(buf)); - if (!memcmp(buf, mac, sizeof(buf))) - return 0; - memset(buf, 0xff, sizeof(buf)); - if (!memcmp(buf, mac, sizeof(buf))) - return 0; - return 1; + for (size_t i = 0; i < MAC_ADDR_LEN; i++) { + if (mac[i] != 0x00 && mac[i] != 0xff) + return 1; + if (mac[i] != mac[0]) + return 1; + } + return 0; }
/** \brief This function will search for a MAC address which can be assigned