diff options
Diffstat (limited to 'include/net/xfrm.h')
-rw-r--r-- | include/net/xfrm.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 9561bf817b02..66c2d3eec03c 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -603,6 +603,10 @@ struct xfrm_dst | |||
603 | struct rt6_info rt6; | 603 | struct rt6_info rt6; |
604 | } u; | 604 | } u; |
605 | struct dst_entry *route; | 605 | struct dst_entry *route; |
606 | #ifdef CONFIG_XFRM_SUB_POLICY | ||
607 | struct flowi *origin; | ||
608 | struct xfrm_selector *partner; | ||
609 | #endif | ||
606 | u32 genid; | 610 | u32 genid; |
607 | u32 route_mtu_cached; | 611 | u32 route_mtu_cached; |
608 | u32 child_mtu_cached; | 612 | u32 child_mtu_cached; |
@@ -615,6 +619,12 @@ static inline void xfrm_dst_destroy(struct xfrm_dst *xdst) | |||
615 | dst_release(xdst->route); | 619 | dst_release(xdst->route); |
616 | if (likely(xdst->u.dst.xfrm)) | 620 | if (likely(xdst->u.dst.xfrm)) |
617 | xfrm_state_put(xdst->u.dst.xfrm); | 621 | xfrm_state_put(xdst->u.dst.xfrm); |
622 | #ifdef CONFIG_XFRM_SUB_POLICY | ||
623 | kfree(xdst->origin); | ||
624 | xdst->origin = NULL; | ||
625 | kfree(xdst->partner); | ||
626 | xdst->partner = NULL; | ||
627 | #endif | ||
618 | } | 628 | } |
619 | 629 | ||
620 | extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); | 630 | extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); |