diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/tx.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 226ce77363d7..d7153bbcdb2b 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -1295,16 +1295,14 @@ int ieee80211_master_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1295 | 1295 | ||
1296 | if (ieee80211_vif_is_mesh(&osdata->vif) && | 1296 | if (ieee80211_vif_is_mesh(&osdata->vif) && |
1297 | ieee80211_is_data(hdr->frame_control)) { | 1297 | ieee80211_is_data(hdr->frame_control)) { |
1298 | if (ieee80211_is_data(hdr->frame_control)) { | 1298 | if (is_multicast_ether_addr(hdr->addr3)) |
1299 | if (is_multicast_ether_addr(hdr->addr3)) | 1299 | memcpy(hdr->addr1, hdr->addr3, ETH_ALEN); |
1300 | memcpy(hdr->addr1, hdr->addr3, ETH_ALEN); | 1300 | else |
1301 | else | 1301 | if (mesh_nexthop_lookup(skb, osdata)) |
1302 | if (mesh_nexthop_lookup(skb, osdata)) | 1302 | return 0; |
1303 | return 0; | 1303 | if (memcmp(odev->dev_addr, hdr->addr4, ETH_ALEN) != 0) |
1304 | if (memcmp(odev->dev_addr, hdr->addr4, ETH_ALEN) != 0) | 1304 | IEEE80211_IFSTA_MESH_CTR_INC(&osdata->u.mesh, |
1305 | IEEE80211_IFSTA_MESH_CTR_INC(&osdata->u.mesh, | 1305 | fwded_frames); |
1306 | fwded_frames); | ||
1307 | } | ||
1308 | } else if (unlikely(osdata->vif.type == NL80211_IFTYPE_MONITOR)) { | 1306 | } else if (unlikely(osdata->vif.type == NL80211_IFTYPE_MONITOR)) { |
1309 | struct ieee80211_sub_if_data *sdata; | 1307 | struct ieee80211_sub_if_data *sdata; |
1310 | int hdrlen; | 1308 | int hdrlen; |