summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/dp/txrx/ol_rx_defrag.c2
-rw-r--r--core/dp/txrx/ol_rx_fwd.c19
2 files changed, 19 insertions, 2 deletions
diff --git a/core/dp/txrx/ol_rx_defrag.c b/core/dp/txrx/ol_rx_defrag.c
index e066ab5498e2..16ba405218f8 100644
--- a/core/dp/txrx/ol_rx_defrag.c
+++ b/core/dp/txrx/ol_rx_defrag.c
@@ -968,7 +968,7 @@ ol_rx_frag_tkip_demic(ol_txrx_pdev_handle pdev, const uint8_t *key,
ol_rx_defrag_copydata(msdu, pktlen - f_tkip.ic_miclen + rx_desc_len,
f_tkip.ic_miclen, (caddr_t) mic0);
- if (!qdf_mem_cmp(mic, mic0, f_tkip.ic_miclen))
+ if (qdf_mem_cmp(mic, mic0, f_tkip.ic_miclen))
return OL_RX_DEFRAG_ERR;
qdf_nbuf_trim_tail(msdu, f_tkip.ic_miclen);
diff --git a/core/dp/txrx/ol_rx_fwd.c b/core/dp/txrx/ol_rx_fwd.c
index ebc15b7206d9..db211fea6902 100644
--- a/core/dp/txrx/ol_rx_fwd.c
+++ b/core/dp/txrx/ol_rx_fwd.c
@@ -1,5 +1,8 @@
/*
- * Copyright (c) 2011, 2014-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011, 2014-2017, 2021 The Linux Foundation. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -204,6 +207,20 @@ ol_rx_fwd_check(struct ol_txrx_vdev_t *vdev,
continue;
}
+ if (vdev->opmode == wlan_op_mode_ap &&
+ qdf_nbuf_is_ipv4_eapol_pkt(msdu) &&
+ qdf_mem_cmp(qdf_nbuf_data(msdu) +
+ QDF_NBUF_DEST_MAC_OFFSET,
+ vdev->mac_addr.raw,
+ QDF_MAC_ADDR_SIZE)) {
+ TXRX_STATS_MSDU_LIST_INCR(
+ pdev, tx.dropped.host_reject, msdu);
+ qdf_nbuf_set_next(msdu, NULL);
+ qdf_nbuf_tx_free(msdu, QDF_NBUF_PKT_ERROR);
+ msdu = msdu_list;
+ continue;
+ }
+
/*
* This MSDU needs to be forwarded to the tx path.
* Check whether it also needs to be sent to the OS