aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-07-17 16:34:11 -0400
committerDavid S. Miller <davem@davemloft.net>2011-07-18 02:11:17 -0400
commit8f40b161de4f27402b4c0659ad2ae83fad5a0cdd (patch)
tree9e2dbd4ba8a66916c690b0e5791ac25ea0958c26 /net/bridge
parent69ecca86da4890c13a5e29c51b4ac76a1a8a62c9 (diff)
neigh: Pass neighbour entry to output ops.
This will get us closer to being able to do "neigh stuff" completely independent of the underlying dst_entry for protocols (ipv4/ipv6) that wish to do so. We will also be able to make dst entries neigh-less. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge')
-rw-r--r--net/bridge/br_netfilter.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c
index 75ee421917c7..1fe43fdf9973 100644
--- a/net/bridge/br_netfilter.c
+++ b/net/bridge/br_netfilter.c
@@ -355,14 +355,14 @@ static int br_nf_pre_routing_finish_bridge(struct sk_buff *skb)
355 neigh_hh_bridge(&neigh->hh, skb); 355 neigh_hh_bridge(&neigh->hh, skb);
356 skb->dev = nf_bridge->physindev; 356 skb->dev = nf_bridge->physindev;
357 return br_handle_frame_finish(skb); 357 return br_handle_frame_finish(skb);
358 } else if (dst->neighbour) { 358 } else {
359 /* the neighbour function below overwrites the complete 359 /* the neighbour function below overwrites the complete
360 * MAC header, so we save the Ethernet source address and 360 * MAC header, so we save the Ethernet source address and
361 * protocol number. */ 361 * protocol number. */
362 skb_copy_from_linear_data_offset(skb, -(ETH_HLEN-ETH_ALEN), skb->nf_bridge->data, ETH_HLEN-ETH_ALEN); 362 skb_copy_from_linear_data_offset(skb, -(ETH_HLEN-ETH_ALEN), skb->nf_bridge->data, ETH_HLEN-ETH_ALEN);
363 /* tell br_dev_xmit to continue with forwarding */ 363 /* tell br_dev_xmit to continue with forwarding */
364 nf_bridge->mask |= BRNF_BRIDGED_DNAT; 364 nf_bridge->mask |= BRNF_BRIDGED_DNAT;
365 return dst->neighbour->output(skb); 365 return neigh->output(neigh, skb);
366 } 366 }
367free_skb: 367free_skb:
368 kfree_skb(skb); 368 kfree_skb(skb);