Commit d1dd5247 authored by Vlad Yasevich's avatar Vlad Yasevich Committed by David S. Miller

sctp: fix crash during module unload

An extra list_del() during the module load failure and unload
resulted in a crash with a list corruption.  Now sctp can
be unloaded again.
Signed-off-by: default avatarVlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 52c0326b
...@@ -1322,9 +1322,8 @@ SCTP_STATIC __init int sctp_init(void) ...@@ -1322,9 +1322,8 @@ SCTP_STATIC __init int sctp_init(void)
out: out:
return status; return status;
err_v6_add_protocol: err_v6_add_protocol:
sctp_v6_del_protocol();
err_add_protocol:
sctp_v4_del_protocol(); sctp_v4_del_protocol();
err_add_protocol:
inet_ctl_sock_destroy(sctp_ctl_sock); inet_ctl_sock_destroy(sctp_ctl_sock);
err_ctl_sock_init: err_ctl_sock_init:
sctp_v6_protosw_exit(); sctp_v6_protosw_exit();
...@@ -1335,7 +1334,6 @@ SCTP_STATIC __init int sctp_init(void) ...@@ -1335,7 +1334,6 @@ SCTP_STATIC __init int sctp_init(void)
sctp_v4_pf_exit(); sctp_v4_pf_exit();
sctp_v6_pf_exit(); sctp_v6_pf_exit();
sctp_sysctl_unregister(); sctp_sysctl_unregister();
list_del(&sctp_af_inet.list);
free_pages((unsigned long)sctp_port_hashtable, free_pages((unsigned long)sctp_port_hashtable,
get_order(sctp_port_hashsize * get_order(sctp_port_hashsize *
sizeof(struct sctp_bind_hashbucket))); sizeof(struct sctp_bind_hashbucket)));
...@@ -1383,7 +1381,6 @@ SCTP_STATIC __exit void sctp_exit(void) ...@@ -1383,7 +1381,6 @@ SCTP_STATIC __exit void sctp_exit(void)
sctp_v4_pf_exit(); sctp_v4_pf_exit();
sctp_sysctl_unregister(); sctp_sysctl_unregister();
list_del(&sctp_af_inet.list);
free_pages((unsigned long)sctp_assoc_hashtable, free_pages((unsigned long)sctp_assoc_hashtable,
get_order(sctp_assoc_hashsize * get_order(sctp_assoc_hashsize *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment