diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2010-04-28 08:47:18 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-28 19:16:31 (GMT) |
commit | 561b1733a465cf9677356b40c27653dd45f1ac56 (patch) | |
tree | 86d6720a6497a0b3faa9685596d4f85d3858b6fe /kernel/relay.c | |
parent | 8d238b25b1ec22a73b1c2206f111df2faaff8285 (diff) | |
download | linux-561b1733a465cf9677356b40c27653dd45f1ac56.tar.xz |
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>
Diffstat (limited to 'kernel/relay.c')
0 files changed, 0 insertions, 0 deletions