util/nvmutil: remove duplicated logic

the byteswap() function is used for big endian host
compatibility, but it can also be used to swap words
in the stored mac address
fsdg20230625
Leah Rowe 2023-04-06 20:22:58 +01:00
parent 9372ae3ddc
commit 8771551162
1 changed files with 1 additions and 8 deletions

View File

@ -189,19 +189,12 @@ cmd_setmac(const char *strMac)
if (parseMacAddress(strMac, mac) == -1)
err(errno = ECANCELED, "Bad MAC address");
/* nvm words are little endian, *except* the mac address. swap bytes */
for (int w = 0; w < 3; w++) {
uint8_t *b = (uint8_t *) &mac[w];
b[0] ^= b[1];
b[1] ^= b[0];
b[0] ^= b[1];
}
for (int partnum = 0; partnum < 2; partnum++) {
if (!validChecksum(partnum))
continue;
for (int w = 0; w < 3; w++)
setWord(w, partnum, mac[w]); /* do not use memcpy! */
byteswap(6, partnum); /* mac words are stored big-endian */
part = partnum;
cmd_setchecksum();
}