arm: board: Random way to change multiple mac addresses
Change-Id: I11f93717fae567daaba4801979fb38c74e7b4e83 Signed-off-by: David Wu <david.wu@rock-chips.com>
This commit is contained in:
parent
98637248d5
commit
2cde40a19f
|
|
@ -93,12 +93,24 @@ static int rockchip_set_ethaddr(void)
|
|||
char buf[ARP_HLEN_ASCII + 1], mac[16];
|
||||
u8 ethaddr[ARP_HLEN * MAX_ETHERNET] = {0};
|
||||
int ret, i;
|
||||
bool need_write = false;
|
||||
bool need_write = false, randomed = false;
|
||||
|
||||
ret = vendor_storage_read(VENDOR_LAN_MAC_ID, ethaddr, sizeof(ethaddr));
|
||||
for (i = 0; i < MAX_ETHERNET; i++) {
|
||||
if (ret <= 0 || !is_valid_ethaddr(ðaddr[i * ARP_HLEN])) {
|
||||
if (!randomed) {
|
||||
net_random_ethaddr(ðaddr[i * ARP_HLEN]);
|
||||
randomed = true;
|
||||
} else {
|
||||
if (i > 0) {
|
||||
memcpy(ðaddr[i * ARP_HLEN],
|
||||
ðaddr[(i - 1) * ARP_HLEN],
|
||||
ARP_HLEN);
|
||||
ethaddr[i * ARP_HLEN] |= 0x02;
|
||||
ethaddr[i * ARP_HLEN] += (i << 2);
|
||||
}
|
||||
}
|
||||
|
||||
need_write = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue