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) | |||
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 | if (sctp_remaddr_proc_init()) | 116 | if (sctp_remaddr_proc_init()) |
117 | goto out_nomem; | 117 | goto out_remaddr_proc_init; |
118 | 118 | ||
119 | return 0; | 119 | return 0; |
120 | 120 | ||
121 | out_remaddr_proc_init: | ||
122 | sctp_remaddr_proc_exit(); | ||
123 | out_assocs_proc_init: | ||
124 | sctp_eps_proc_exit(); | ||
125 | out_eps_proc_init: | ||
126 | sctp_snmp_proc_exit(); | ||
127 | out_snmp_proc_init: | ||
128 | if (proc_net_sctp) { | ||
129 | proc_net_sctp = NULL; | ||
130 | remove_proc_entry("sctp", init_net.proc_net); | ||
131 | } | ||
121 | out_nomem: | 132 | out_nomem: |
122 | return -ENOMEM; | 133 | return -ENOMEM; |
123 | } | 134 | } |