|
@@ -1721,18 +1721,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);
|
|
|
|