If an ethaddr is registered with a device node the ethid is set to 0 via the struct initialization. Now if a device without a node (for eaxample a USB network adapter) with ethid 0 looks up the ethaddr it will wrongly get that address assigned, as the ethid matches. Avoid this by setting the ethid to something that no device will ever use when the addr is registered via a device node. Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> --- net/eth.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/eth.c b/net/eth.c index 9dc44119528e..badd18343349 100644 --- a/net/eth.c +++ b/net/eth.c @@ -150,6 +150,7 @@ void of_eth_register_ethaddr(struct device_node *node, const char *ethaddr) addr = xzalloc(sizeof(*addr)); addr->node = node; + addr->ethid = -1; memcpy(addr->ethaddr, ethaddr, ETH_ALEN); list_add_tail(&addr->list, ðaddr_list); } -- 2.19.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox