struct ipv6hdr *hdr = ipv6_hdr(skb);
        struct inet6_skb_parm *opt = IP6CB(skb);
        struct net *net = dev_net(dst->dev);
-       struct neighbour *n;
        u32 mtu;
 
        if (net->ipv6.devconf_all->forwarding == 0)
           send redirects to source routed frames.
           We don't send redirects to frames decapsulated from IPsec.
         */
-       n = dst_get_neighbour_noref(dst);
-       if (skb->dev == dst->dev && n && opt->srcrt == 0 && !skb_sec_path(skb)) {
+       if (skb->dev == dst->dev && opt->srcrt == 0 && !skb_sec_path(skb)) {
                struct in6_addr *target = NULL;
                struct rt6_info *rt;
 
                 */
 
                rt = (struct rt6_info *) dst;
-               if ((rt->rt6i_flags & RTF_GATEWAY))
-                       target = (struct in6_addr*)&n->primary_key;
+               if (rt->rt6i_flags & RTF_GATEWAY)
+                       target = &rt->rt6i_gateway;
                else
                        target = &hdr->daddr;