diff --git a/net/eth.c b/net/eth.c index 0c1ff73e4..fd9447a82 100644 --- a/net/eth.c +++ b/net/eth.c @@ -88,9 +88,17 @@ static void eth_drop_ethaddr(int ethid) void eth_register_ethaddr(int ethid, const char *ethaddr) { struct eth_ethaddr *addr; + struct eth_device *edev; eth_drop_ethaddr(ethid); + list_for_each_entry(edev, &netdev_list, list) { + if (edev->dev.id == ethid) { + register_preset_mac_address(edev, ethaddr); + return; + } + } + addr = xzalloc(sizeof(*addr)); addr->ethid = ethid; memcpy(addr->ethaddr, ethaddr, 6);