summaryrefslogtreecommitdiffhomepage
path: root/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'interface.c')
-rw-r--r--interface.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/interface.c b/interface.c
index 0b9893c..71e2ecc 100644
--- a/interface.c
+++ b/interface.c
@@ -586,6 +586,8 @@ interface_claim_device(struct interface *iface)
if (iface->parent_iface.iface)
interface_remove_user(&iface->parent_iface);
+ device_lock();
+
if (iface->parent_ifname) {
parent = vlist_find(&interfaces, iface->parent_ifname, parent, node);
iface->parent_iface.cb = interface_alias_cb;
@@ -601,6 +603,8 @@ interface_claim_device(struct interface *iface)
if (dev)
interface_set_main_dev(iface, dev);
+ device_unlock();
+
if (iface->proto_handler->flags & PROTO_FLAG_INIT_AVAILABLE)
interface_set_available(iface, true);
}