diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-11 10:31:37 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-11 10:31:37 +0400 |
commit | 941a46a29c9388f9cef518fa3498329fb55badca (patch) | |
tree | 548156dac0a7f8246310d5beb4cda3ecff14e67e /net/batman-adv/soft-interface.c | |
parent | 313b037cf054ec908de92fb4c085403ffd7420d4 (diff) | |
parent | 2d3f6ccc4ea5c74d4b4af1b47c56b4cff4bbfcb7 (diff) | |
download | linux-941a46a29c9388f9cef518fa3498329fb55badca.tar.xz |
Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge
Included changes:
- fix a bug generated by the wrong interaction between the GW feature and the
Bridge Loop Avoidance
Diffstat (limited to 'net/batman-adv/soft-interface.c')
-rw-r--r-- | net/batman-adv/soft-interface.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c index 6e2530b02043..a0ec0e4ada4c 100644 --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c @@ -256,7 +256,11 @@ void interface_rx(struct net_device *soft_iface, struct bat_priv *bat_priv = netdev_priv(soft_iface); struct ethhdr *ethhdr; struct vlan_ethhdr *vhdr; + struct batman_header *batadv_header = (struct batman_header *)skb->data; short vid __maybe_unused = -1; + bool is_bcast; + + is_bcast = (batadv_header->packet_type == BAT_BCAST); /* check if enough space is available for pulling, and pull */ if (!pskb_may_pull(skb, hdr_size)) @@ -302,7 +306,7 @@ void interface_rx(struct net_device *soft_iface, /* Let the bridge loop avoidance check the packet. If will * not handle it, we can safely push it up. */ - if (bla_rx(bat_priv, skb, vid)) + if (bla_rx(bat_priv, skb, vid, is_bcast)) goto out; netif_rx(skb); |