X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=interface.c;h=f474246e155df405162ab60e67e77c66ec0c2839;hp=c861b7d16c506774bdd70accdfc060443c8df75c;hb=7233afd94910cb4583c9555840a990287fd5d642;hpb=d2a33f3f0fe704e4396fa2ada08401cb955ba7cb diff --git a/interface.c b/interface.c index c861b7d..f474246 100644 --- a/interface.c +++ b/interface.c @@ -581,6 +581,9 @@ interface_proto_cb(struct interface_proto_state *state, enum interface_proto_eve return; } + if (!iface->l3_dev.dev) + interface_set_l3_dev(iface, iface->main_dev.dev); + interface_ip_set_enabled(&iface->config_ip, true); system_flush_routes(); iface->state = IFS_UP; @@ -772,15 +775,11 @@ interface_set_l3_dev(struct interface *iface, struct device *dev) void interface_set_main_dev(struct interface *iface, struct device *dev) { - bool set_l3 = (!dev || iface->main_dev.dev == iface->l3_dev.dev); bool claimed = iface->l3_dev.claimed; if (iface->main_dev.dev == dev) return; - if (set_l3) - interface_set_l3_dev(iface, dev); - device_add_user(&iface->main_dev, dev); if (!dev) { interface_set_link_state(iface, false);