Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
                fib_rule_put(arg.rule);
 
        if (arg.result)
-               return (struct dst_entry *) arg.result;
+               return arg.result;
 
        dst_hold(&ip6_null_entry.u.dst);
        return &ip6_null_entry.u.dst;
 
        fib6_force_start_gc();
 
 out:
-       return (struct dst_entry *)rt;
+       return &rt->u.dst;
 }
 
 int ndisc_dst_gc(int *more)
        if (idev)
                in6_dev_put(idev);
        if (rt)
-               dst_free((struct dst_entry *) rt);
+               dst_free(&rt->u.dst);
        return err;
 }
 
                rt->rt6i_flags |= RTF_LOCAL;
        rt->rt6i_nexthop = ndisc_get_neigh(rt->rt6i_dev, &rt->rt6i_gateway);
        if (rt->rt6i_nexthop == NULL) {
-               dst_free((struct dst_entry *) rt);
+               dst_free(&rt->u.dst);
                return ERR_PTR(-ENOMEM);
        }