mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
sctp: apply rhashtable api to send/recv path
apply lookup apis to two functions, for __sctp_endpoint_lookup_assoc and __sctp_lookup_association, it's invoked in the protection of sock lock, it will be safe, but sctp_lookup_association need to call rcu_read_lock() and to detect the t->dead to protect it. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d6c0256a60
commit
4f00878126
4 changed files with 29 additions and 56 deletions
|
@ -1467,6 +1467,9 @@ static __init int sctp_init(void)
|
|||
INIT_HLIST_HEAD(&sctp_port_hashtable[i].chain);
|
||||
}
|
||||
|
||||
if (sctp_transport_hashtable_init())
|
||||
goto err_thash_alloc;
|
||||
|
||||
pr_info("Hash tables configured (established %d bind %d)\n",
|
||||
sctp_assoc_hashsize, sctp_port_hashsize);
|
||||
|
||||
|
@ -1521,6 +1524,8 @@ err_register_defaults:
|
|||
get_order(sctp_port_hashsize *
|
||||
sizeof(struct sctp_bind_hashbucket)));
|
||||
err_bhash_alloc:
|
||||
sctp_transport_hashtable_destroy();
|
||||
err_thash_alloc:
|
||||
kfree(sctp_ep_hashtable);
|
||||
err_ehash_alloc:
|
||||
free_pages((unsigned long)sctp_assoc_hashtable,
|
||||
|
@ -1567,6 +1572,7 @@ static __exit void sctp_exit(void)
|
|||
free_pages((unsigned long)sctp_port_hashtable,
|
||||
get_order(sctp_port_hashsize *
|
||||
sizeof(struct sctp_bind_hashbucket)));
|
||||
sctp_transport_hashtable_destroy();
|
||||
|
||||
percpu_counter_destroy(&sctp_sockets_allocated);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue