On Fr, 2015-06-05 at 14:08 -0300, mleitner@xxxxxxxxxx wrote: > if (sp->do_auto_asconf) { > + spin_lock_bh(&sock_net(sk)->sctp.addr_wq_lock); > sp->do_auto_asconf = 0; > - list_del(&sp->auto_asconf_list); > + list_del_rcu(&sp->auto_asconf_list); > + spin_unlock_bh(&sock_net(sk)->sctp.addr_wq_lock); > } This also looks a bit unsafe to me: My proposal would be to sock_hold/sock_put the sockets when pushing them onto the auto_asconf_list and defer the modifications on the list until we don't need to hold socket lock anymore (in syscalls we do have a reference anyway). addr_wq_lock then is only used either without lock_sock at all or only in order addr_wq_lock -> lock_sock, which does not cause any locking ordering issues. Bye, Hannes -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html