aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-07-03 13:16:27 -0500
committerThomas Gleixner <tglx@linutronix.de>2009-07-29 23:30:41 +0200
commitbf794775e976c2a059d8d88ef12715c91985a6c4 (patch)
tree13f90ddb29e4a11309ee46c6c1fa3b54ce30091b /net
parent1eba80024f931c61851363662f9b2922307114ae (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.c2
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;
}