netdev
[Top] [All Lists]

[PATCH] decnet initialization race

To: "David S. Miller" <davem@xxxxxxxxxx>
Subject: [PATCH] decnet initialization race
From: Stephen Hemminger <shemminger@xxxxxxxx>
Date: Wed, 14 Jan 2004 16:40:45 -0800
Cc: netdev@xxxxxxxxxxx, Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxx>
In-reply-to: <20040113163631.1a9c1a59.davem@redhat.com>
Organization: Open Source Development Lab
References: <20040113105843.0d1351cb.shemminger@osdl.org> <20040113163631.1a9c1a59.davem@redhat.com>
Sender: netdev-bounce@xxxxxxxxxxx
Decnet exposes itself to proc and packets before it has finished initializing.
This was always a race, but the notifier replay might expose it worse.

diff -Nru a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
--- a/net/decnet/af_decnet.c    Wed Jan 14 16:27:05 2004
+++ b/net/decnet/af_decnet.c    Wed Jan 14 16:27:05 2004
@@ -2363,17 +2363,16 @@
        if (!dn_sk_cachep)
                return -ENOMEM;
 
-       sock_register(&dn_family_ops);
-       dev_add_pack(&dn_dix_packet_type);
-       register_netdevice_notifier(&dn_dev_notifier);
-
-       proc_net_fops_create("decnet", S_IRUGO, &dn_socket_seq_fops);
-
        dn_neigh_init();
        dn_dev_init();
        dn_route_init();
        dn_fib_init();
 
+       sock_register(&dn_family_ops);
+       dev_add_pack(&dn_dix_packet_type);
+       register_netdevice_notifier(&dn_dev_notifier);
+
+       proc_net_fops_create("decnet", S_IRUGO, &dn_socket_seq_fops);
        dn_register_sysctl();
 
        return 0;

<Prev in Thread] Current Thread [Next in Thread>