summaryrefslogtreecommitdiff
path: root/drivers/staging
diff options
context:
space:
mode:
authorMalcolm Priestley <tvboxspy@gmail.com>2020-01-19 12:04:05 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-01-22 09:52:38 +0100
commit1ca9c731057994e5b1f98e9869127af61f3c0cd3 (patch)
tree4d7f980d765690dfc5cd821c932be603b3160965 /drivers/staging
parentb653174327e989cbc97f545ce33d30e1fe9de532 (diff)
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>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/vt6656/dpc.c18
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);