proto-shell: remove the device user before issuing the protocol down event
authorFelix Fietkau <nbd@openwrt.org>
Mon, 3 Oct 2011 00:52:28 +0000 (02:52 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 3 Oct 2011 00:52:28 +0000 (02:52 +0200)
proto-shell.c

index 7eeff2892f676dc82f6b3cc856f40c6211a775e5..41031c3553983000d4a406a5c31806eab7975190 100644 (file)
@@ -138,9 +138,11 @@ proto_shell_teardown_cb(struct uloop_process *p, int ret)
        struct proto_shell_state *state;
 
        state = container_of(p, struct proto_shell_state, teardown_task);
-       state->proto.proto_event(&state->proto, IFPEV_DOWN);
+
        if (state->l3_dev.dev)
                device_remove_user(&state->l3_dev);
+
+       state->proto.proto_event(&state->proto, IFPEV_DOWN);
 }
 
 static void