Commit 684a493b authored by David S. Miller's avatar David S. Miller

Merge http://bk.skbuff.net:10772

into nuts.davemloft.net:/disk1/BK/net-2.6
parents 2650e5a8 9cab9a80
...@@ -166,7 +166,7 @@ struct xfrm_policy_afinfo { ...@@ -166,7 +166,7 @@ struct xfrm_policy_afinfo {
struct dst_ops *dst_ops; struct dst_ops *dst_ops;
void (*garbage_collect)(void); void (*garbage_collect)(void);
int (*dst_lookup)(struct xfrm_dst **dst, struct flowi *fl); int (*dst_lookup)(struct xfrm_dst **dst, struct flowi *fl);
struct dst_entry *(*find_bundle)(struct flowi *fl, struct rtable *rt, struct xfrm_policy *policy); struct dst_entry *(*find_bundle)(struct flowi *fl, struct xfrm_policy *policy);
int (*bundle_create)(struct xfrm_policy *policy, int (*bundle_create)(struct xfrm_policy *policy,
struct xfrm_state **xfrm, struct xfrm_state **xfrm,
int nx, int nx,
......
...@@ -43,14 +43,10 @@ static int __xfrm4_bundle_ok(struct xfrm_dst *xdst, struct flowi *fl) ...@@ -43,14 +43,10 @@ static int __xfrm4_bundle_ok(struct xfrm_dst *xdst, struct flowi *fl)
} }
static struct dst_entry * static struct dst_entry *
__xfrm4_find_bundle(struct flowi *fl, struct rtable *rt, struct xfrm_policy *policy) __xfrm4_find_bundle(struct flowi *fl, struct xfrm_policy *policy)
{ {
struct dst_entry *dst; struct dst_entry *dst;
if (!fl->fl4_src)
fl->fl4_src = rt->rt_src;
if (!fl->fl4_dst)
fl->fl4_dst = rt->rt_dst;
read_lock_bh(&policy->lock); read_lock_bh(&policy->lock);
for (dst = policy->bundles; dst; dst = dst->next) { for (dst = policy->bundles; dst; dst = dst->next) {
struct xfrm_dst *xdst = (struct xfrm_dst*)dst; struct xfrm_dst *xdst = (struct xfrm_dst*)dst;
......
...@@ -52,7 +52,7 @@ static int __xfrm6_bundle_ok(struct xfrm_dst *xdst, struct flowi *fl) ...@@ -52,7 +52,7 @@ static int __xfrm6_bundle_ok(struct xfrm_dst *xdst, struct flowi *fl)
} }
static struct dst_entry * static struct dst_entry *
__xfrm6_find_bundle(struct flowi *fl, struct rtable *rt, struct xfrm_policy *policy) __xfrm6_find_bundle(struct flowi *fl, struct xfrm_policy *policy)
{ {
struct dst_entry *dst; struct dst_entry *dst;
......
...@@ -646,13 +646,13 @@ xfrm_tmpl_resolve(struct xfrm_policy *policy, struct flowi *fl, ...@@ -646,13 +646,13 @@ xfrm_tmpl_resolve(struct xfrm_policy *policy, struct flowi *fl,
*/ */
static struct dst_entry * static struct dst_entry *
xfrm_find_bundle(struct flowi *fl, struct rtable *rt, struct xfrm_policy *policy, unsigned short family) xfrm_find_bundle(struct flowi *fl, struct xfrm_policy *policy, unsigned short family)
{ {
struct dst_entry *x; struct dst_entry *x;
struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family); struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family);
if (unlikely(afinfo == NULL)) if (unlikely(afinfo == NULL))
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
x = afinfo->find_bundle(fl, rt, policy); x = afinfo->find_bundle(fl, policy);
xfrm_policy_put_afinfo(afinfo); xfrm_policy_put_afinfo(afinfo);
return x; return x;
} }
...@@ -762,7 +762,7 @@ int xfrm_lookup(struct dst_entry **dst_p, struct flowi *fl, ...@@ -762,7 +762,7 @@ int xfrm_lookup(struct dst_entry **dst_p, struct flowi *fl,
* LATER: help from flow cache. It is optional, this * LATER: help from flow cache. It is optional, this
* is required only for output policy. * is required only for output policy.
*/ */
dst = xfrm_find_bundle(fl, rt, policy, family); dst = xfrm_find_bundle(fl, policy, family);
if (IS_ERR(dst)) { if (IS_ERR(dst)) {
xfrm_pol_put(policy); xfrm_pol_put(policy);
return PTR_ERR(dst); return PTR_ERR(dst);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment