|
@@ -951,10 +951,6 @@ dp_rx_process_rxdma_err(struct dp_soc *soc, qdf_nbuf_t nbuf,
|
|
|
|
|
|
hal_rx_dump_pkt_tlvs(soc->hal_soc, rx_tlv_hdr,
|
|
|
QDF_TRACE_LEVEL_INFO);
|
|
|
- if (dp_rxdma_err_nbuf_drop()) {
|
|
|
- qdf_nbuf_free(nbuf);
|
|
|
- return;
|
|
|
- }
|
|
|
qdf_assert(0);
|
|
|
}
|
|
|
|
|
@@ -1373,6 +1369,23 @@ done:
|
|
|
return rx_bufs_used; /* Assume no scale factor for now */
|
|
|
}
|
|
|
|
|
|
+#ifdef DROP_RXDMA_DECRYPT_ERR
|
|
|
+/**
|
|
|
+ * dp_handle_rxdma_decrypt_err() - Check if decrypt err frames can be handled
|
|
|
+ *
|
|
|
+ * Return: true if rxdma decrypt err frames are handled and false otheriwse
|
|
|
+ */
|
|
|
+static inline bool dp_handle_rxdma_decrypt_err(void)
|
|
|
+{
|
|
|
+ return false;
|
|
|
+}
|
|
|
+#else
|
|
|
+static inline bool dp_handle_rxdma_decrypt_err(void)
|
|
|
+{
|
|
|
+ return true;
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
uint32_t
|
|
|
dp_rx_wbm_err_process(struct dp_intr *int_ctx, struct dp_soc *soc,
|
|
|
hal_ring_handle_t hal_ring_hdl, uint32_t quota)
|
|
@@ -1643,6 +1656,13 @@ done:
|
|
|
continue;
|
|
|
|
|
|
case HAL_RXDMA_ERR_DECRYPT:
|
|
|
+ if (!dp_handle_rxdma_decrypt_err()) {
|
|
|
+ if (peer)
|
|
|
+ DP_STATS_INC(peer,
|
|
|
+ rx.err.decrypt_err, 1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
pool_id = wbm_err_info.pool_id;
|
|
|
err_code = wbm_err_info.rxdma_err_code;
|
|
|
tlv_hdr = rx_tlv_hdr;
|