From 3d0e3a08883fb2ada3cd5acc8e9f58efa9302eb8 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 1 Mar 2011 14:36:37 -0800 Subject: [PATCH] --- yaml --- r: 237519 b: refs/heads/master c: 80c0bc9e37adfc892af82cb6aa8cace79f8a96cb h: refs/heads/master i: 237517: 17aae78f9b83671649f3ab4d78d34cdec2c4c19c 237515: f48db76a5dc9e6ee1fc8bccc6d5750d102af4513 237511: 689e2ae33749df8defa1aa70197c86bf29d8b189 237503: 3900e2d32ece21eaecb7ab6be52743ad007e6f60 v: v3 --- [refs] | 2 +- trunk/include/net/dst.h | 3 +-- trunk/net/decnet/dn_route.c | 5 +++-- trunk/net/ipv4/route.c | 4 +--- trunk/net/ipv6/ip6_output.c | 4 ++-- trunk/net/xfrm/xfrm_policy.c | 2 +- 6 files changed, 9 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 0c050ca096bf..53ca50c7a0e1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a1414715f0ac905fb4b3a158ff6548d37bbe6165 +refs/heads/master: 80c0bc9e37adfc892af82cb6aa8cace79f8a96cb diff --git a/trunk/include/net/dst.h b/trunk/include/net/dst.h index 4fedffd7c56f..15d67c8d3ce8 100644 --- a/trunk/include/net/dst.h +++ b/trunk/include/net/dst.h @@ -421,8 +421,7 @@ extern void dst_init(void); /* Flags for xfrm_lookup flags argument. */ enum { - XFRM_LOOKUP_WAIT = 1 << 0, - XFRM_LOOKUP_ICMP = 1 << 1, + XFRM_LOOKUP_ICMP = 1 << 0, }; struct flowi; diff --git a/trunk/net/decnet/dn_route.c b/trunk/net/decnet/dn_route.c index 06c054d5ccba..0877147d2167 100644 --- a/trunk/net/decnet/dn_route.c +++ b/trunk/net/decnet/dn_route.c @@ -1233,8 +1233,9 @@ int dn_route_output_sock(struct dst_entry **pprt, struct flowi *fl, struct sock err = __dn_route_output_key(pprt, fl, flags & MSG_TRYHARD); if (err == 0 && fl->proto) { - err = xfrm_lookup(&init_net, pprt, fl, sk, - (flags & MSG_DONTWAIT) ? 0 : XFRM_LOOKUP_WAIT); + if (!(flags & MSG_DONTWAIT)) + fl->flags |= FLOWI_FLAG_CAN_SLEEP; + err = xfrm_lookup(&init_net, pprt, fl, sk, 0); } return err; } diff --git a/trunk/net/ipv4/route.c b/trunk/net/ipv4/route.c index 78462658fccb..23d205043d92 100644 --- a/trunk/net/ipv4/route.c +++ b/trunk/net/ipv4/route.c @@ -2732,9 +2732,7 @@ int ip_route_output_flow(struct net *net, struct rtable **rp, struct flowi *flp, flp->fl4_src = (*rp)->rt_src; if (!flp->fl4_dst) flp->fl4_dst = (*rp)->rt_dst; - err = __xfrm_lookup(net, (struct dst_entry **)rp, flp, sk, - ((flp->flags & FLOWI_FLAG_CAN_SLEEP) ? - XFRM_LOOKUP_WAIT : 0)); + err = __xfrm_lookup(net, (struct dst_entry **)rp, flp, sk, 0); if (err == -EREMOTE) err = ipv4_dst_blackhole(net, rp, flp); diff --git a/trunk/net/ipv6/ip6_output.c b/trunk/net/ipv6/ip6_output.c index b5f8769dbdf4..faf7b9d1d536 100644 --- a/trunk/net/ipv6/ip6_output.c +++ b/trunk/net/ipv6/ip6_output.c @@ -1027,7 +1027,7 @@ struct dst_entry *ip6_dst_lookup_flow(struct sock *sk, struct flowi *fl, ipv6_addr_copy(&fl->fl6_dst, final_dst); if (can_sleep) { fl->flags |= FLOWI_FLAG_CAN_SLEEP; - err = __xfrm_lookup(sock_net(sk), &dst, fl, sk, XFRM_LOOKUP_WAIT); + err = __xfrm_lookup(sock_net(sk), &dst, fl, sk, 0); if (err == -EREMOTE) err = ip6_dst_blackhole(sk, &dst, fl); if (err) @@ -1072,7 +1072,7 @@ struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi *fl, ipv6_addr_copy(&fl->fl6_dst, final_dst); if (can_sleep) { fl->flags |= FLOWI_FLAG_CAN_SLEEP; - err = __xfrm_lookup(sock_net(sk), &dst, fl, sk, XFRM_LOOKUP_WAIT); + err = __xfrm_lookup(sock_net(sk), &dst, fl, sk, 0); if (err == -EREMOTE) err = ip6_dst_blackhole(sk, &dst, fl); if (err) diff --git a/trunk/net/xfrm/xfrm_policy.c b/trunk/net/xfrm/xfrm_policy.c index 41a91d27d3ea..f4c7467a614e 100644 --- a/trunk/net/xfrm/xfrm_policy.c +++ b/trunk/net/xfrm/xfrm_policy.c @@ -1831,7 +1831,7 @@ int __xfrm_lookup(struct net *net, struct dst_entry **dst_p, XFRM_INC_STATS(net, LINUX_MIB_XFRMOUTNOSTATES); return -EREMOTE; } - if (flags & XFRM_LOOKUP_WAIT) { + if (fl->flags & FLOWI_FLAG_CAN_SLEEP) { DECLARE_WAITQUEUE(wait, current); add_wait_queue(&net->xfrm.km_waitq, &wait);