summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2020-11-10 17:10:01 +0100
committerPatrick Georgi <pgeorgi@google.com>2020-11-30 07:56:35 +0000
commitafb60e7112d44d7b38226554bef366503f59d5c5 (patch)
treeaf8708139e32cb38f356ba33d4e15466072bf0d2
parentc19a9a52783f7ed14fbe5beb7f1be15706222578 (diff)
downloadcoreboot-afb60e7112d44d7b38226554bef366503f59d5c5.tar.xz
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>
-rw-r--r--src/mainboard/siemens/mc_apl1/mainboard.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/mainboard/siemens/mc_apl1/mainboard.c b/src/mainboard/siemens/mc_apl1/mainboard.c
index ff0cc597bc..9540d6dca2 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