summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPixelBot AutoMerger <android-nexus-securitybot@system.gserviceaccount.com>2023-03-12 18:42:09 -0700
committerSecurityBot <android-nexus-securitybot@system.gserviceaccount.com>2023-03-12 18:42:09 -0700
commita8d1a2cfc8fd16f9fe11b3b48b351ae7f7e97d83 (patch)
treeef803e1f09797dad4b292512ab1c7877da6a0c1e
parente47c7684755c837dcd117e471ce1f08ff781abf8 (diff)
parentb81914402ed2b5913e89167eb5ac9359dcb8ce4b (diff)
downloadwlan-a8d1a2cfc8fd16f9fe11b3b48b351ae7f7e97d83.tar.gz
Merge android13-gs-pixel-5.10-tm-qpr3 into android13-gs-pixel-5.10-udc
SBMerger: 478053055 Change-Id: Ie5f8a8c8d3d159d606ceafeefb4ca36083caf7d5 Signed-off-by: SecurityBot <android-nexus-securitybot@system.gserviceaccount.com>
-rw-r--r--qca-wifi-host-cmn/dp/wifi3.0/dp_types.h1
-rw-r--r--qcacld-3.0/core/dp/txrx3.0/dp_fisa_rx.c12
-rw-r--r--qcacld-3.0/core/hdd/src/wlan_hdd_driver_ops.c2
-rw-r--r--qcacld-3.0/core/wma/src/wma_features.c5
4 files changed, 19 insertions, 1 deletions
diff --git a/qca-wifi-host-cmn/dp/wifi3.0/dp_types.h b/qca-wifi-host-cmn/dp/wifi3.0/dp_types.h
index e399112..ede018b 100644
--- a/qca-wifi-host-cmn/dp/wifi3.0/dp_types.h
+++ b/qca-wifi-host-cmn/dp/wifi3.0/dp_types.h
@@ -3576,6 +3576,7 @@ struct dp_fisa_stats {
/* flow index invalid from RX HW TLV */
uint32_t invalid_flow_index;
uint32_t reo_mismatch;
+ uint32_t incorrect_rdi;
};
enum fisa_aggr_ret {
diff --git a/qcacld-3.0/core/dp/txrx3.0/dp_fisa_rx.c b/qcacld-3.0/core/dp/txrx3.0/dp_fisa_rx.c
index a3adead..79c1866 100644
--- a/qcacld-3.0/core/dp/txrx3.0/dp_fisa_rx.c
+++ b/qcacld-3.0/core/dp/txrx3.0/dp_fisa_rx.c
@@ -1945,6 +1945,7 @@ QDF_STATUS dp_fisa_rx(struct dp_soc *soc, struct dp_vdev *vdev,
struct dp_fisa_rx_sw_ft *fisa_flow;
int fisa_ret;
uint8_t rx_ctx_id = QDF_NBUF_CB_RX_CTX_ID(nbuf_list);
+ uint32_t tlv_reo_dest_ind;
head_nbuf = nbuf_list;
@@ -1973,6 +1974,17 @@ QDF_STATUS dp_fisa_rx(struct dp_soc *soc, struct dp_vdev *vdev,
qdf_nbuf_push_head(head_nbuf, soc->rx_pkt_tlv_size +
QDF_NBUF_CB_RX_PACKET_L3_HDR_PAD(head_nbuf));
+ hal_rx_msdu_get_reo_destination_indication(soc->hal_soc,
+ (uint8_t *)qdf_nbuf_data(head_nbuf),
+ &tlv_reo_dest_ind);
+ /* Skip FISA aggregation and drop the frame if RDI is REO2TCL */
+ if (qdf_unlikely(tlv_reo_dest_ind == REO_REMAP_TCL)) {
+ qdf_nbuf_free(head_nbuf);
+ head_nbuf = next_nbuf;
+ DP_STATS_INC(dp_fisa_rx_hdl, incorrect_rdi, 1);
+ continue;
+ }
+
/* Add new flow if the there is no ongoing flow */
fisa_flow = dp_rx_get_fisa_flow(dp_fisa_rx_hdl, vdev,
head_nbuf);
diff --git a/qcacld-3.0/core/hdd/src/wlan_hdd_driver_ops.c b/qcacld-3.0/core/hdd/src/wlan_hdd_driver_ops.c
index 140b4c9..cb5aa94 100644
--- a/qcacld-3.0/core/hdd/src/wlan_hdd_driver_ops.c
+++ b/qcacld-3.0/core/hdd/src/wlan_hdd_driver_ops.c
@@ -2102,8 +2102,8 @@ wlan_hdd_pld_uevent(struct device *dev, struct pld_uevent_data *event_data)
break;
case PLD_FW_HANG_EVENT:
- hdd_info("Received firmware hang event");
cds_get_recovery_reason(&reason);
+ hdd_info("Received firmware hang event, reason: %d", reason);
qdf_mem_zero(&g_fw_host_hang_event, QDF_HANG_EVENT_DATA_SIZE);
hang_evt_data.hang_data = g_fw_host_hang_event;
hang_evt_data.offset = 0;
diff --git a/qcacld-3.0/core/wma/src/wma_features.c b/qcacld-3.0/core/wma/src/wma_features.c
index 17fdb2a..0f097dc 100644
--- a/qcacld-3.0/core/wma/src/wma_features.c
+++ b/qcacld-3.0/core/wma/src/wma_features.c
@@ -2909,6 +2909,11 @@ wma_wow_wakeup_host_trigger_ssr(t_wma_handle *wma, uint32_t reason)
if (!wlan_pmo_enable_ssr_on_page_fault(wma->psoc))
return;
+ if (wmi_get_runtime_pm_inprogress(wma->wmi_handle)) {
+ wma_debug("Ignore run time pm wakeup");
+ return;
+ }
+
pagefault_wakeups_for_ssr =
wlan_pmo_get_max_pagefault_wakeups_for_ssr(wma->psoc);