diff options
Diffstat (limited to 'net/sctp/protocol.c')
| -rw-r--r-- | net/sctp/protocol.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index b435a193c5df..9258dfe784ae 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
| @@ -108,14 +108,23 @@ static __init int sctp_proc_init(void) | |||
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | if (sctp_snmp_proc_init()) | 110 | if (sctp_snmp_proc_init()) |
| 111 | goto out_nomem; | 111 | goto out_snmp_proc_init; |
| 112 | if (sctp_eps_proc_init()) | 112 | if (sctp_eps_proc_init()) |
| 113 | goto out_nomem; | 113 | goto out_eps_proc_init; |
| 114 | if (sctp_assocs_proc_init()) | 114 | if (sctp_assocs_proc_init()) |
| 115 | goto out_nomem; | 115 | goto out_assocs_proc_init; |
| 116 | 116 | ||
| 117 | return 0; | 117 | return 0; |
| 118 | 118 | ||
| 119 | out_assocs_proc_init: | ||
| 120 | sctp_eps_proc_exit(); | ||
| 121 | out_eps_proc_init: | ||
| 122 | sctp_snmp_proc_exit(); | ||
| 123 | out_snmp_proc_init: | ||
| 124 | if (proc_net_sctp) { | ||
| 125 | proc_net_sctp = NULL; | ||
| 126 | remove_proc_entry("sctp", init_net.proc_net); | ||
| 127 | } | ||
| 119 | out_nomem: | 128 | out_nomem: |
| 120 | return -ENOMEM; | 129 | return -ENOMEM; |
| 121 | } | 130 | } |
