Problem Description: sctp_getsockopt_local_addrs_old() in net/sctp/socket.c calls copy_to_user() while the spinlock addr_lock is held. this should not be done as copy_to_user() might sleep. the call to sctp_copy_laddrs_to_user() while holding the lock is also problematic as it calls copy_to_user()
Can you put together a patch? Have you observed any problems or test cases to illustrate this problem? Thanks.
It looks like commit aad97f38b71dd2ecd730b3a3dce8264d13fbcd56 implements this and has been submitted by vladislav.yasevich@hp.com. The bug can be closed.