projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
interface: use interface_set_main_dev() from interface_remove_link
[project/netifd.git]
/
interface.c
diff --git
a/interface.c
b/interface.c
index
c861b7d
..
65bc37d
100644
(file)
--- a/
interface.c
+++ b/
interface.c
@@
-581,6
+581,9
@@
interface_proto_cb(struct interface_proto_state *state, enum interface_proto_eve
return;
}
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;
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)
{
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;
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);
device_add_user(&iface->main_dev, dev);
if (!dev) {
interface_set_link_state(iface, false);
@@
-808,7
+807,7
@@
interface_remove_link(struct interface *iface, struct device *dev)
if (dev != iface->main_dev.dev)
return UBUS_STATUS_INVALID_ARGUMENT;
if (dev != iface->main_dev.dev)
return UBUS_STATUS_INVALID_ARGUMENT;
-
device_remove_user(&iface->main_dev
);
+
interface_set_main_dev(iface, NULL
);
return 0;
}
return 0;
}