defer releasing the l3 dev so that the generic code can take care of cleaning system...
authorFelix Fietkau <nbd@openwrt.org>
Tue, 18 Oct 2011 17:17:05 +0000 (19:17 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 18 Oct 2011 17:17:05 +0000 (19:17 +0200)
interface.c
proto-shell.c

index 0a2afd0..5bbc0c3 100644 (file)
@@ -280,6 +280,8 @@ interface_proto_cb(struct interface_proto_state *state, enum interface_proto_eve
                interface_handle_config_change(iface);
                if (iface->autostart)
                        __interface_set_up(iface);
+               if (iface->l3_dev->dev)
+                       device_release(iface->l3_dev);
                break;
        case IFPEV_LINK_LOST:
                if (iface->state != IFS_UP)
index 68af69b..f197c62 100644 (file)
@@ -125,10 +125,6 @@ proto_shell_teardown_cb(struct netifd_process *p, int ret)
                return;
 
        netifd_kill_process(&state->proto_task);
-
-       if (state->l3_dev.dev)
-               device_remove_user(&state->l3_dev);
-
        state->proto.proto_event(&state->proto, IFPEV_DOWN);
 }