On Fri, 2012-09-07 at 17:57 +0200, Nicolas Dichtel wrote: > When a xfrm policy is inserted or deleted, we must invalidate > all dst and recalculate the route. > > Signed-off-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx> > --- > include/net/dst.h | 7 +++++++ > net/core/dst.c | 1 + > net/core/sock.c | 4 ++-- > net/ipv6/ip6_tunnel.c | 3 +-- > 4 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/include/net/dst.h b/include/net/dst.h > index 9a78810..478e55a 100644 > --- a/include/net/dst.h > +++ b/include/net/dst.h > @@ -101,6 +101,9 @@ struct dst_entry { > atomic_t __refcnt; /* client references */ > int __use; > unsigned long lastuse; > +#ifdef CONFIG_XFRM > + u32 flow_cache_genid; > +#endif > union { > struct dst_entry *next; > struct rtable __rcu *rt_next; > @@ -457,6 +460,10 @@ static inline int dst_input(struct sk_buff *skb) > > static inline struct dst_entry *dst_check(struct dst_entry *dst, u32 cookie) > { > +#ifdef CONFIG_XFRM > + if (dst->flow_cache_genid != atomic_read(&flow_cache_genid)) > + return NULL; > +#endif Hmm... cant we reuse rt_genid ? (When changing flow_cache_genid, change &net->ipv4.rt_genid) -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html