Merge branches 'kbuild', 'packaging' and 'misc' of git://git.kernel.org/pub/scm/linux...
[pandora-kernel.git] / net / ipv6 / ndisc.c
index 7596f07..9da6e02 100644 (file)
@@ -107,8 +107,6 @@ static const struct neigh_ops ndisc_generic_ops = {
        .error_report =         ndisc_error_report,
        .output =               neigh_resolve_output,
        .connected_output =     neigh_connected_output,
-       .hh_output =            dev_queue_xmit,
-       .queue_xmit =           dev_queue_xmit,
 };
 
 static const struct neigh_ops ndisc_hh_ops = {
@@ -117,17 +115,13 @@ static const struct neigh_ops ndisc_hh_ops = {
        .error_report =         ndisc_error_report,
        .output =               neigh_resolve_output,
        .connected_output =     neigh_resolve_output,
-       .hh_output =            dev_queue_xmit,
-       .queue_xmit =           dev_queue_xmit,
 };
 
 
 static const struct neigh_ops ndisc_direct_ops = {
        .family =               AF_INET6,
-       .output =               dev_queue_xmit,
-       .connected_output =     dev_queue_xmit,
-       .hh_output =            dev_queue_xmit,
-       .queue_xmit =           dev_queue_xmit,
+       .output =               neigh_direct_output,
+       .connected_output =     neigh_direct_output,
 };
 
 struct neigh_table nd_tbl = {
@@ -392,7 +386,7 @@ static int ndisc_constructor(struct neighbour *neigh)
        if (!dev->header_ops) {
                neigh->nud_state = NUD_NOARP;
                neigh->ops = &ndisc_direct_ops;
-               neigh->output = neigh->ops->queue_xmit;
+               neigh->output = neigh_direct_output;
        } else {
                if (is_multicast) {
                        neigh->nud_state = NUD_NOARP;
@@ -1244,7 +1238,7 @@ static void ndisc_router_discovery(struct sk_buff *skb)
        rt = rt6_get_dflt_router(&ipv6_hdr(skb)->saddr, skb->dev);
 
        if (rt)
-               neigh = rt->rt6i_nexthop;
+               neigh = dst_get_neighbour(&rt->dst);
 
        if (rt && lifetime == 0) {
                neigh_clone(neigh);
@@ -1265,7 +1259,7 @@ static void ndisc_router_discovery(struct sk_buff *skb)
                        return;
                }
 
-               neigh = rt->rt6i_nexthop;
+               neigh = dst_get_neighbour(&rt->dst);
                if (neigh == NULL) {
                        ND_PRINTK0(KERN_ERR
                                   "ICMPv6 RA: %s() got default router without neighbour.\n",