Andrew Morton wrote: > On Mon, 16 Apr 2007 14:34:22 -0700 > bugme-daemon@bugzilla.kernel.org wrote: > >> http://bugzilla.kernel.org/show_bug.cgi?id=8342 >> >> Summary: sctp_getsockopt_local_addrs_old() calls copy_to_user() >> while a spinlock is held >> Kernel Version: 2.6.20 >> Status: NEW >> Severity: normal >> Owner: acme@ghostprotocols.net >> Submitter: matthias.kaehlcke@gmail.com >> >> >> 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() >> > > yup. Thanks for reporting. The area of this particular lock is quite ugly and will need to be cleaned up. In the mean time, here is a patch that fixes this for now. -vlad