diff options
| author | Petr Zejdl <[email protected]> | 2024-04-04 13:44:22 +0200 |
|---|---|---|
| committer | Michal Simek <[email protected]> | 2024-04-10 15:16:57 +0200 |
| commit | f03f962c602c428a1091c3e0fad25b4cf64c9497 (patch) | |
| tree | 63b0ef5abd7b218014c5b541b49defbf52c97295 | |
| parent | 3a6f440dd3709efa8ea3851e9baf8e774f798fd1 (diff) | |
xilinx: common: Fix MAC address read from EEPROM
The upper-to-lowercase character conversion now avoids altering the
MAC address field. In the previous version, this alteration corrupted
the MAC address.
Signed-off-by: Petr Zejdl <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Michal Simek <[email protected]>
| -rw-r--r-- | board/xilinx/common/board.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c index f5117012d62..b47d2d23f91 100644 --- a/board/xilinx/common/board.c +++ b/board/xilinx/common/board.c @@ -105,10 +105,14 @@ static void xilinx_eeprom_legacy_cleanup(char *eeprom, int size) for (i = 0; i < size; i++) { byte = eeprom[i]; - /* Remove all non printable chars but ignore MAC address */ - if ((i < offsetof(struct xilinx_legacy_format, eth_mac) || - i >= offsetof(struct xilinx_legacy_format, unused1)) && - (byte < '!' || byte > '~')) { + /* Ignore MAC address */ + if (i >= offsetof(struct xilinx_legacy_format, eth_mac) && + i < offsetof(struct xilinx_legacy_format, unused1)) { + continue; + } + + /* Remove all non printable chars */ + if (byte < '!' || byte > '~') { eeprom[i] = 0; continue; } |
