DORMANTno replies

[PATCH]: af_key procfs OOPS fix

From: David Miller <davem@davemloft.net>
Date: 2008-02-27 06:25:19
Subsystem: networking [general], networking [ipsec], the rest · Maintainers: "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Steffen Klassert, Herbert Xu, Linus Torvalds

FYI, I just checked in the following bug fix.  My workstation would
OOPS every time I'd restart openswan because of this.

commit d9595a7b9c777d45a74774f1428c263a0a47f4c0
Author: David S. Miller [off-list ref]
Date:   Tue Feb 26 22:20:44 2008 -0800

    [AF_KEY]: Fix oops by converting to proc_net_*().
    
    To make sure the procfs visibility occurs after the ->proc_fs ops are
    setup, use proc_net_fops_create() and proc_net_remove().
    
    This also fixes an OOPS after module unload in that the name string
    for remove was wrong, so it wouldn't actually be removed.  That bug
    was introduced by commit 61145aa1a12401ac71bcc450a58c773dd6e2bfb9
    ("[KEY]: Clean up proc files creation a bit.")
    
    Signed-off-by: David S. Miller [off-list ref]
diff --git a/net/key/af_key.c b/net/key/af_key.c
index 1c85392..8b5f486 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -3807,17 +3807,16 @@ static int pfkey_init_proc(void)
 {
 	struct proc_dir_entry *e;
 
-	e = create_proc_entry("pfkey", 0, init_net.proc_net);
+	e = proc_net_fops_create(&init_net, "pfkey", 0, &pfkey_proc_ops);
 	if (e == NULL)
 		return -ENOMEM;
 
-	e->proc_fops = &pfkey_proc_ops;
 	return 0;
 }
 
 static void pfkey_exit_proc(void)
 {
-	remove_proc_entry("net/pfkey", NULL);
+	proc_net_remove(&init_net, "pfkey");
 }
 #else
 static inline int pfkey_init_proc(void)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help