From 13f7f295f33c2639c390d4a6b2c58d1845e12fc3 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 27 Jun 2012 01:32:07 +0200 Subject: [PATCH] bridge: fix getting the mac address from the first member device --- bridge.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bridge.c b/bridge.c index 361b409..d29c3c0 100644 --- a/bridge.c +++ b/bridge.c @@ -109,11 +109,17 @@ bridge_reset_primary(struct bridge_state *bst) bst->primary_port = NULL; bst->dev.settings.flags &= ~DEV_OPT_MACADDR; vlist_for_each_element(&bst->members, bm, node) { + uint8_t *macaddr; + if (!bm->present) continue; bst->primary_port = bm; - memcpy(bst->dev.settings.macaddr, bm->dev.dev->settings.macaddr, 6); + if (bm->dev.dev->settings.flags & DEV_OPT_MACADDR) + macaddr = bm->dev.dev->settings.macaddr; + else + macaddr = bm->dev.dev->orig_settings.macaddr; + memcpy(bst->dev.settings.macaddr, macaddr, 6); bst->dev.settings.flags |= DEV_OPT_MACADDR; return; } -- 2.30.2