diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index 7c54abf0d0832290737ce389c29c7d728e34cbbd..ffd064dd99251cd3c1328695020c072fd2e5fe5e 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -1004,7 +1004,9 @@ __init int sctp_init(void)
 		goto err_init_mibs;
 
 	/* Initialize proc fs directory.  */
-	sctp_proc_init();
+	status = sctp_proc_init();
+	if (status)
+		goto err_init_proc;
 
 	/* Initialize object count debugging.  */
 	sctp_dbg_objcnt_init();
@@ -1174,6 +1176,7 @@ __init int sctp_init(void)
 			     sizeof(struct sctp_hashbucket)));
 err_ahash_alloc:
 	sctp_dbg_objcnt_exit();
+err_init_proc:
 	sctp_proc_exit();
 	cleanup_sctp_mibs();
 err_init_mibs: