diff --git a/Kbuild b/Kbuild index b8e69690c257..e76385d930ab 100644 --- a/Kbuild +++ b/Kbuild @@ -3178,6 +3178,7 @@ cppflags-$(CONFIG_LITHIUM) += -DFEATURE_AST cppflags-$(CONFIG_LITHIUM) += -DPEER_PROTECTED_ACCESS cppflags-$(CONFIG_LITHIUM) += -DSERIALIZE_QUEUE_SETUP cppflags-$(CONFIG_LITHIUM) += -DDP_RX_PKT_NO_PEER_DELIVER +cppflags-$(CONFIG_LITHIUM) += -DDP_RX_DROP_RAW_FRM cppflags-$(CONFIG_LITHIUM) += -DFEATURE_ALIGN_STATS_FROM_DP cppflags-$(CONFIG_LITHIUM) += -DDP_RX_SPECIAL_FRAME_NEED cppflags-$(CONFIG_LITHIUM) += -DFEATURE_STATS_EXT_V2 diff --git a/core/dp/txrx3.0/dp_fisa_rx.c b/core/dp/txrx3.0/dp_fisa_rx.c index bb8038b36997..cc0bb18cfbb0 100644 --- a/core/dp/txrx3.0/dp_fisa_rx.c +++ b/core/dp/txrx3.0/dp_fisa_rx.c @@ -475,8 +475,14 @@ dp_rx_get_fisa_flow(struct dp_rx_fst *fisa_hdl, struct dp_vdev *vdev, flow_idx_valid = is_flow_idx_valid(flow_invalid, flow_timeout); if (flow_idx_valid) { - dp_fisa_debug("flow_idx is valid 0x%x", flow_idx); - qdf_assert_always(flow_idx < fisa_hdl->max_entries); + /* If flow index is invalid, fail to get flow */ + if (qdf_unlikely(flow_idx >= fisa_hdl->max_entries)) { + dp_info("flow_idx is invalid 0x%x", flow_idx); + hal_rx_dump_pkt_tlvs(hal_soc_hdl, rx_tlv_hdr, + QDF_TRACE_LEVEL_INFO_HIGH); + DP_STATS_INC(fisa_hdl, invalid_flow_index, 1); + return NULL; + } sw_ft_entry = &sw_ft_base[flow_idx]; sw_ft_entry->vdev = vdev;