Message ID | d45a3acc0911241715k6882aa3el64a50b3d68d12167@mail.gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Wed, Nov 25, 2009 at 12:15:42PM +1100, andrew hendry wrote: > Adds error checking to x25_init. > > Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com> > > diff -uprN -X a/Documentation/dontdiff a/net/x25/af_x25.c b/net/x25/af_x25.c > --- a/net/x25/af_x25.c 2009-11-25 10:21:17.000000000 +1100 > +++ b/net/x25/af_x25.c 2009-11-25 10:22:06.000000000 +1100 > @@ -1659,18 +1659,31 @@ static int __init x25_init(void) > if (rc != 0) > goto out; > > - sock_register(&x25_family_ops); > + rc = sock_register(&x25_family_ops); > + if (rc != 0) > + goto out_proto; > > dev_add_pack(&x25_packet_type); > > - register_netdevice_notifier(&x25_dev_notifier); > + rc = register_netdevice_notifier(&x25_dev_notifier); > + if (rc != 0) > + goto out_sock; > > printk(KERN_INFO "X.25 for Linux Version 0.2\n"); > > x25_register_sysctl(); > - x25_proc_init(); > + rc = x25_proc_init(); > + if (rc != 0) > + goto out_dev; > out: > return rc; > +out_dev: > + unregister_netdevice_notifier(&x25_dev_notifier); > +out_sock: > + sock_unregister(AF_X25); > +out_proto: > + proto_unregister(&x25_proto); > + goto out; > } > module_init(x25_init); The following seems slightly cleaner to me: ... rc = x25_proc_init(); if (rc != 0) goto out_dev; return 0; <-- or goto out; out_dev: unregister_netdevice_notifier(&x25_dev_notifier); out_sock: sock_unregister(AF_X25); out_proto: proto_unregister(&x25_proto); out: return rc; } -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff -uprN -X a/Documentation/dontdiff a/net/x25/af_x25.c b/net/x25/af_x25.c --- a/net/x25/af_x25.c 2009-11-25 10:21:17.000000000 +1100 +++ b/net/x25/af_x25.c 2009-11-25 10:22:06.000000000 +1100 @@ -1659,18 +1659,31 @@ static int __init x25_init(void) if (rc != 0) goto out; - sock_register(&x25_family_ops); + rc = sock_register(&x25_family_ops); + if (rc != 0) + goto out_proto; dev_add_pack(&x25_packet_type); - register_netdevice_notifier(&x25_dev_notifier); + rc = register_netdevice_notifier(&x25_dev_notifier); + if (rc != 0) + goto out_sock; printk(KERN_INFO "X.25 for Linux Version 0.2\n"); x25_register_sysctl(); - x25_proc_init(); + rc = x25_proc_init(); + if (rc != 0) + goto out_dev; out: return rc; +out_dev: + unregister_netdevice_notifier(&x25_dev_notifier); +out_sock: + sock_unregister(AF_X25); +out_proto: + proto_unregister(&x25_proto); + goto out; } module_init(x25_init); -- To unsubscribe from this list: send the line "unsubscribe netdev" in
Adds error checking to x25_init. Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com> the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html