diff options
Diffstat (limited to 'net/sctp/protocol.c')
-rw-r--r-- | net/sctp/protocol.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index d6af466091d2..23aaffb97ca3 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c @@ -108,16 +108,27 @@ static __init int sctp_proc_init(void) } if (sctp_snmp_proc_init()) - goto out_nomem; + goto out_snmp_proc_init; if (sctp_eps_proc_init()) - goto out_nomem; + goto out_eps_proc_init; if (sctp_assocs_proc_init()) - goto out_nomem; + goto out_assocs_proc_init; if (sctp_remaddr_proc_init()) - goto out_nomem; + goto out_remaddr_proc_init; return 0; +out_remaddr_proc_init: + sctp_remaddr_proc_exit(); +out_assocs_proc_init: + sctp_eps_proc_exit(); +out_eps_proc_init: + sctp_snmp_proc_exit(); +out_snmp_proc_init: + if (proc_net_sctp) { + proc_net_sctp = NULL; + remove_proc_entry("sctp", init_net.proc_net); + } out_nomem: return -ENOMEM; } |