diff options
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 3acb70b73e22..bb73ed2d20b9 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -2027,7 +2027,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) | |||
2027 | /* frame is in RMC, don't forward */ | 2027 | /* frame is in RMC, don't forward */ |
2028 | if (ieee80211_is_data(hdr->frame_control) && | 2028 | if (ieee80211_is_data(hdr->frame_control) && |
2029 | is_multicast_ether_addr(hdr->addr1) && | 2029 | is_multicast_ether_addr(hdr->addr1) && |
2030 | mesh_rmc_check(hdr->addr3, mesh_hdr, rx->sdata)) | 2030 | mesh_rmc_check(rx->sdata, hdr->addr3, mesh_hdr)) |
2031 | return RX_DROP_MONITOR; | 2031 | return RX_DROP_MONITOR; |
2032 | 2032 | ||
2033 | if (!ieee80211_is_data(hdr->frame_control) || | 2033 | if (!ieee80211_is_data(hdr->frame_control) || |
@@ -2054,9 +2054,9 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) | |||
2054 | } | 2054 | } |
2055 | 2055 | ||
2056 | rcu_read_lock(); | 2056 | rcu_read_lock(); |
2057 | mppath = mpp_path_lookup(proxied_addr, sdata); | 2057 | mppath = mpp_path_lookup(sdata, proxied_addr); |
2058 | if (!mppath) { | 2058 | if (!mppath) { |
2059 | mpp_path_add(proxied_addr, mpp_addr, sdata); | 2059 | mpp_path_add(sdata, proxied_addr, mpp_addr); |
2060 | } else { | 2060 | } else { |
2061 | spin_lock_bh(&mppath->state_lock); | 2061 | spin_lock_bh(&mppath->state_lock); |
2062 | if (!ether_addr_equal(mppath->mpp, mpp_addr)) | 2062 | if (!ether_addr_equal(mppath->mpp, mpp_addr)) |
@@ -2104,13 +2104,13 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) | |||
2104 | memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN); | 2104 | memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN); |
2105 | /* update power mode indication when forwarding */ | 2105 | /* update power mode indication when forwarding */ |
2106 | ieee80211_mps_set_frame_flags(sdata, NULL, fwd_hdr); | 2106 | ieee80211_mps_set_frame_flags(sdata, NULL, fwd_hdr); |
2107 | } else if (!mesh_nexthop_lookup(fwd_skb, sdata)) { | 2107 | } else if (!mesh_nexthop_lookup(sdata, fwd_skb)) { |
2108 | /* mesh power mode flags updated in mesh_nexthop_lookup */ | 2108 | /* mesh power mode flags updated in mesh_nexthop_lookup */ |
2109 | IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, fwded_unicast); | 2109 | IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, fwded_unicast); |
2110 | } else { | 2110 | } else { |
2111 | /* unable to resolve next hop */ | 2111 | /* unable to resolve next hop */ |
2112 | mesh_path_error_tx(ifmsh->mshcfg.element_ttl, fwd_hdr->addr3, | 2112 | mesh_path_error_tx(sdata, ifmsh->mshcfg.element_ttl, |
2113 | 0, reason, fwd_hdr->addr2, sdata); | 2113 | fwd_hdr->addr3, 0, reason, fwd_hdr->addr2); |
2114 | IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_no_route); | 2114 | IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_no_route); |
2115 | kfree_skb(fwd_skb); | 2115 | kfree_skb(fwd_skb); |
2116 | return RX_DROP_MONITOR; | 2116 | return RX_DROP_MONITOR; |