diff options
| -rw-r--r-- | include/net/xfrm.h | 2 | ||||
| -rw-r--r-- | net/xfrm/xfrm_policy.c | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 984e5c45265c..15ec19dcf9c8 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
| @@ -310,6 +310,8 @@ struct xfrm_tmpl | |||
| 310 | /* Source address of tunnel. Ignored, if it is not a tunnel. */ | 310 | /* Source address of tunnel. Ignored, if it is not a tunnel. */ |
| 311 | xfrm_address_t saddr; | 311 | xfrm_address_t saddr; |
| 312 | 312 | ||
| 313 | unsigned short encap_family; | ||
| 314 | |||
| 313 | __u32 reqid; | 315 | __u32 reqid; |
| 314 | 316 | ||
| 315 | /* Mode: transport, tunnel etc. */ | 317 | /* Mode: transport, tunnel etc. */ |
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index e5ea1347a4ff..64d3938f74c4 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
| @@ -1211,6 +1211,7 @@ xfrm_tmpl_resolve_one(struct xfrm_policy *policy, struct flowi *fl, | |||
| 1211 | if (tmpl->mode == XFRM_MODE_TUNNEL) { | 1211 | if (tmpl->mode == XFRM_MODE_TUNNEL) { |
| 1212 | remote = &tmpl->id.daddr; | 1212 | remote = &tmpl->id.daddr; |
| 1213 | local = &tmpl->saddr; | 1213 | local = &tmpl->saddr; |
| 1214 | family = tmpl->encap_family; | ||
| 1214 | if (xfrm_addr_any(local, family)) { | 1215 | if (xfrm_addr_any(local, family)) { |
| 1215 | error = xfrm_get_saddr(&tmp, remote, family); | 1216 | error = xfrm_get_saddr(&tmp, remote, family); |
| 1216 | if (error) | 1217 | if (error) |
