diff options
author | Steven Rostedt <srostedt@redhat.com> | 2009-07-03 13:16:27 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-07-29 23:30:41 +0200 |
commit | bf794775e976c2a059d8d88ef12715c91985a6c4 (patch) | |
tree | 13f90ddb29e4a11309ee46c6c1fa3b54ce30091b /net | |
parent | 1eba80024f931c61851363662f9b2922307114ae (diff) |
net: netlink workaround silly yield()
Added test for rt_task(current) to avoid deadlock with RT task calling
sched_yield()
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Acked-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
Signed-off-by: Clark Williams <williams@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <20090417132010.0191c749@torg>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
- ---
net/netlink/af_netlink.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Diffstat (limited to 'net')
-rw-r--r-- | net/netlink/af_netlink.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 2936fa3b6dc8..f4e94fb17477 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -1061,7 +1061,7 @@ int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, u32 pid, return -ENOBUFS; if (info.delivered) { - if (info.congested && (allocation & __GFP_WAIT)) + if (info.congested && (allocation & __GFP_WAIT) && !rt_task(current)) yield(); return 0; } |