Skip to content

Commit

Permalink
Added code to bypass duplicate check of mac80211.
Browse files Browse the repository at this point in the history
Signed-off-by: David Lin <dlin@marvell.com>
  • Loading branch information
yuhhaurlin committed Mar 30, 2017
1 parent 7b07491 commit 6457434
Showing 1 changed file with 3 additions and 13 deletions.
16 changes: 3 additions & 13 deletions hif/pcie/rx_ndp.c
Expand Up @@ -227,6 +227,7 @@ static inline void pcie_rx_process_fast_data(struct mwl_priv *priv,
ethertype = (skb->data[12] << 8) | skb->data[13];
fc = cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_DATA);

memset(&hdr, 0, sizeof(hdr));
switch (mwl_vif->type) {
case NL80211_IFTYPE_AP:
fc |= cpu_to_le16(IEEE80211_FCTL_TODS);
Expand Down Expand Up @@ -269,8 +270,6 @@ static inline void pcie_rx_process_fast_data(struct mwl_priv *priv,

hdr.frame_control = fc;
hdr.duration_id = 0;
hdr.seq_ctrl = cpu_to_le16(mwl_vif->seqno);
mwl_vif->seqno += 0x10;

skb_pull(skb, ETH_HLEN);

Expand All @@ -286,6 +285,7 @@ static inline void pcie_rx_process_fast_data(struct mwl_priv *priv,
} else
memcpy(skb_push(skb, hdrlen), &hdr, hdrlen);

status->flag |= RX_FLAG_DUP_VALIDATED;
ieee80211_rx(priv->hw, skb);

return;
Expand All @@ -300,7 +300,6 @@ static inline void pcie_rx_process_slow_data(struct mwl_priv *priv,
{
struct ieee80211_rx_status *status;
struct ieee80211_hdr *wh;
struct mwl_vif *mwl_vif;

pcie_rx_remove_dma_header(skb, 0);
status = IEEE80211_SKB_RXCB(skb);
Expand All @@ -315,16 +314,6 @@ static inline void pcie_rx_process_slow_data(struct mwl_priv *priv,
else {
wh = (struct ieee80211_hdr *)skb->data;

if (ieee80211_has_tods(wh->frame_control))
mwl_vif = utils_find_vif_bss(priv, wh->addr1);
else
mwl_vif = utils_find_vif_bss(priv, wh->addr2);

if (mwl_vif) {
wh->seq_ctrl = cpu_to_le16(mwl_vif->seqno);
mwl_vif->seqno += 0x10;
}

if (ieee80211_is_mgmt(wh->frame_control) &&
ieee80211_has_protected(wh->frame_control) &&
!is_multicast_ether_addr(wh->addr1)) {
Expand All @@ -334,6 +323,7 @@ static inline void pcie_rx_process_slow_data(struct mwl_priv *priv,
}
}

status->flag |= RX_FLAG_DUP_VALIDATED;
ieee80211_rx(priv->hw, skb);
}

Expand Down

0 comments on commit 6457434

Please sign in to comment.