route: move lwtunnel state to dst_entry
[linux-block.git] / net / ipv6 / ila.c
index 2540ab4b76d15d9776721d2e2f6204df9ce1f59b..f011c3d5ca40c3fb46cc4d3e6eada952c6536c9a 100644 (file)
@@ -89,16 +89,13 @@ static void update_ipv6_locator(struct sk_buff *skb, struct ila_params *p)
 static int ila_output(struct sock *sk, struct sk_buff *skb)
 {
        struct dst_entry *dst = skb_dst(skb);
-       struct rt6_info *rt6 = NULL;
 
        if (skb->protocol != htons(ETH_P_IPV6))
                goto drop;
 
-       rt6 = (struct rt6_info *)dst;
+       update_ipv6_locator(skb, ila_params_lwtunnel(dst->lwtstate));
 
-       update_ipv6_locator(skb, ila_params_lwtunnel(rt6->rt6i_lwtstate));
-
-       return rt6->rt6i_lwtstate->orig_output(sk, skb);
+       return dst->lwtstate->orig_output(sk, skb);
 
 drop:
        kfree_skb(skb);
@@ -108,16 +105,13 @@ drop:
 static int ila_input(struct sk_buff *skb)
 {
        struct dst_entry *dst = skb_dst(skb);
-       struct rt6_info *rt6 = NULL;
 
        if (skb->protocol != htons(ETH_P_IPV6))
                goto drop;
 
-       rt6 = (struct rt6_info *)dst;
-
-       update_ipv6_locator(skb, ila_params_lwtunnel(rt6->rt6i_lwtstate));
+       update_ipv6_locator(skb, ila_params_lwtunnel(dst->lwtstate));
 
-       return rt6->rt6i_lwtstate->orig_input(skb);
+       return dst->lwtstate->orig_input(skb);
 
 drop:
        kfree_skb(skb);