diff options
author | Malcolm Priestley <tvboxspy@gmail.com> | 2020-01-19 12:04:05 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-01-22 09:52:38 +0100 |
commit | 1ca9c731057994e5b1f98e9869127af61f3c0cd3 (patch) | |
tree | 4d7f980d765690dfc5cd821c932be603b3160965 | |
parent | b653174327e989cbc97f545ce33d30e1fe9de532 (diff) | |
download | linux-1ca9c731057994e5b1f98e9869127af61f3c0cd3.tar.bz2 |
staging: vt6656: Just check NEWRSR_DECRYPTOK for RX_FLAG_DECRYPTED.
At present the driver does a number of checks for RX_FLAG_DECRYPTED.
Remove all these and just pass check NEWRSR_DECRYPTOK mac80211
will handle the processing of the sk_buff and dispose of it.
This means that mac80211 can do unsupported encryption modes
on stack.
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Link: https://lore.kernel.org/r/75bbaa08-2465-b057-64ce-b67933409bc6@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/vt6656/dpc.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/drivers/staging/vt6656/dpc.c b/drivers/staging/vt6656/dpc.c index 981de5687341..821aae8ca402 100644 --- a/drivers/staging/vt6656/dpc.c +++ b/drivers/staging/vt6656/dpc.c @@ -30,10 +30,8 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb *ptr_rcb, struct ieee80211_supported_band *sband; struct sk_buff *skb; struct ieee80211_rx_status *rx_status; - struct ieee80211_hdr *hdr; struct vnt_rx_header *head; struct vnt_rx_tail *tail; - __le16 fc; u32 frame_size; int ii; u16 rx_bitrate, pay_load_with_padding; @@ -115,22 +113,10 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb *ptr_rcb, if (!(tail->rsr & RSR_CRCOK)) rx_status->flag |= RX_FLAG_FAILED_FCS_CRC; - hdr = (struct ieee80211_hdr *)(skb->data); - fc = hdr->frame_control; - rx_status->rate_idx = rate_idx; - if (ieee80211_has_protected(fc)) { - if (priv->local_id > REV_ID_VT3253_A1) { - rx_status->flag |= RX_FLAG_DECRYPTED; - - /* Drop packet */ - if (!(tail->new_rsr & NEWRSR_DECRYPTOK)) { - dev_kfree_skb(skb); - return true; - } - } - } + if (tail->new_rsr & NEWRSR_DECRYPTOK) + rx_status->flag |= RX_FLAG_DECRYPTED; ieee80211_rx_irqsafe(priv->hw, skb); |