linux/include/net/sctp
Wei Yongjun 561b1733a4 sctp: avoid irq lock inversion while call sk->sk_data_ready()
sk->sk_data_ready() of sctp socket can be called from both BH and non-BH
contexts, but the default sk->sk_data_ready(), sock_def_readable(), can
not be used in this case. Therefore, we have to make a new function
sctp_data_ready() to grab sk->sk_data_ready() with BH disabling.

=========================================================
[ INFO: possible irq lock inversion dependency detected ]
2.6.33-rc6 #129
---------------------------------------------------------
sctp_darn/1517 just changed the state of lock:
 (clock-AF_INET){++.?..}, at: [<c06aab60>] sock_def_readable+0x20/0x80
but this lock took another, SOFTIRQ-unsafe lock in the past:
 (slock-AF_INET){+.-...}

and interrupts could create inverse lock ordering between them.

other info that might help us debug this:
1 lock held by sctp_darn/1517:
 #0:  (sk_lock-AF_INET){+.+.+.}, at: [<cdfe363d>] sctp_sendmsg+0x23d/0xc00 [sctp]

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-04-28 12:16:31 -07:00
..
auth.h [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
checksum.h sctp: Clean up sctp checksumming code 2009-02-16 00:03:10 -08:00
command.h sctp: Send user messages to the lower layer as one 2009-09-04 18:20:57 -04:00
constants.h sctp: Update SWS avaoidance receiver side algorithm 2009-11-23 15:53:57 -05:00
sctp.h sctp: avoid irq lock inversion while call sk->sk_data_ready() 2010-04-28 12:16:31 -07:00
sm.h sctp: Fix malformed "Invalid Stream Identifier" error 2009-11-23 15:53:56 -05:00
structs.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
tsnmap.h sctp: shrink sctp_tsnmap some more by removing gabs array 2008-10-08 14:19:01 -07:00
ulpevent.h [SCTP]: Fix compiler warning about const qualifiers 2008-04-12 18:40:06 -07:00
ulpqueue.h [SCTP]: Stop claiming that this is a "reference implementation" 2008-02-05 10:59:07 -05:00
user.h sctp: Turn the enum socket options into defines 2009-11-23 15:53:59 -05:00