From f743e17dc2c26aca8b7784edd5762c3cf5657e6d Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Mon, 11 Aug 2008 18:04:35 -0700 Subject: [PATCH] --- yaml --- r: 108369 b: refs/heads/master c: 0a37c10ed460872d41259659f7f589edebdc42b7 h: refs/heads/master i: 108367: b8586ab31841193feaa085b2ac0c28821edbb5aa v: v3 --- [refs] | 2 +- trunk/MAINTAINERS | 1 + trunk/net/ipv4/udp.c | 6 ++++-- trunk/net/ipv6/udp.c | 6 +++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index ec38a4ef3f55..8fadcf7d20b7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e93615d0866a974afc7148172f8382e2af48c985 +refs/heads/master: 0a37c10ed460872d41259659f7f589edebdc42b7 diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index c67a402a6857..45b26e78bbcd 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -3071,6 +3071,7 @@ M: horms@verge.net.au P: Julian Anastasov M: ja@ssi.bg L: netdev@vger.kernel.org +L: lvs-devel@vger.kernel.org S: Maintained NFS CLIENT diff --git a/trunk/net/ipv4/udp.c b/trunk/net/ipv4/udp.c index 383d17359d01..8e42fbbd5761 100644 --- a/trunk/net/ipv4/udp.c +++ b/trunk/net/ipv4/udp.c @@ -989,7 +989,9 @@ int udp_queue_rcv_skb(struct sock * sk, struct sk_buff *skb) up->encap_rcv != NULL) { int ret; + bh_unlock_sock(sk); ret = (*up->encap_rcv)(sk, skb); + bh_lock_sock(sk); if (ret <= 0) { UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INDATAGRAMS, @@ -1092,7 +1094,7 @@ static int __udp4_lib_mcast_deliver(struct net *net, struct sk_buff *skb, if (skb1) { int ret = 0; - bh_lock_sock_nested(sk); + bh_lock_sock(sk); if (!sock_owned_by_user(sk)) ret = udp_queue_rcv_skb(sk, skb1); else @@ -1194,7 +1196,7 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct hlist_head udptable[], if (sk != NULL) { int ret = 0; - bh_lock_sock_nested(sk); + bh_lock_sock(sk); if (!sock_owned_by_user(sk)) ret = udp_queue_rcv_skb(sk, skb); else diff --git a/trunk/net/ipv6/udp.c b/trunk/net/ipv6/udp.c index d1477b350f76..a6aecf76a71b 100644 --- a/trunk/net/ipv6/udp.c +++ b/trunk/net/ipv6/udp.c @@ -379,7 +379,7 @@ static int __udp6_lib_mcast_deliver(struct net *net, struct sk_buff *skb, uh->source, saddr, dif))) { struct sk_buff *buff = skb_clone(skb, GFP_ATOMIC); if (buff) { - bh_lock_sock_nested(sk2); + bh_lock_sock(sk2); if (!sock_owned_by_user(sk2)) udpv6_queue_rcv_skb(sk2, buff); else @@ -387,7 +387,7 @@ static int __udp6_lib_mcast_deliver(struct net *net, struct sk_buff *skb, bh_unlock_sock(sk2); } } - bh_lock_sock_nested(sk); + bh_lock_sock(sk); if (!sock_owned_by_user(sk)) udpv6_queue_rcv_skb(sk, skb); else @@ -508,7 +508,7 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct hlist_head udptable[], /* deliver */ - bh_lock_sock_nested(sk); + bh_lock_sock(sk); if (!sock_owned_by_user(sk)) udpv6_queue_rcv_skb(sk, skb); else