diff options
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
| -rw-r--r-- | net/xfrm/xfrm_policy.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 5e6b05ac1260..8206025d8e46 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
| @@ -782,7 +782,7 @@ int xfrm_lookup(struct dst_entry **dst_p, struct flowi *fl, | |||
| 782 | int nx = 0; | 782 | int nx = 0; |
| 783 | int err; | 783 | int err; |
| 784 | u32 genid; | 784 | u32 genid; |
| 785 | u16 family = dst_orig->ops->family; | 785 | u16 family; |
| 786 | u8 dir = policy_to_flow_dir(XFRM_POLICY_OUT); | 786 | u8 dir = policy_to_flow_dir(XFRM_POLICY_OUT); |
| 787 | u32 sk_sid = security_sk_sid(sk, fl, dir); | 787 | u32 sk_sid = security_sk_sid(sk, fl, dir); |
| 788 | restart: | 788 | restart: |
| @@ -796,13 +796,14 @@ restart: | |||
| 796 | if ((dst_orig->flags & DST_NOXFRM) || !xfrm_policy_list[XFRM_POLICY_OUT]) | 796 | if ((dst_orig->flags & DST_NOXFRM) || !xfrm_policy_list[XFRM_POLICY_OUT]) |
| 797 | return 0; | 797 | return 0; |
| 798 | 798 | ||
| 799 | policy = flow_cache_lookup(fl, sk_sid, family, dir, | 799 | policy = flow_cache_lookup(fl, sk_sid, dst_orig->ops->family, |
| 800 | xfrm_policy_lookup); | 800 | dir, xfrm_policy_lookup); |
| 801 | } | 801 | } |
| 802 | 802 | ||
| 803 | if (!policy) | 803 | if (!policy) |
| 804 | return 0; | 804 | return 0; |
| 805 | 805 | ||
| 806 | family = dst_orig->ops->family; | ||
| 806 | policy->curlft.use_time = (unsigned long)xtime.tv_sec; | 807 | policy->curlft.use_time = (unsigned long)xtime.tv_sec; |
| 807 | 808 | ||
| 808 | switch (policy->action) { | 809 | switch (policy->action) { |
