summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPixelBot AutoMerger <android-nexus-securitybot@system.gserviceaccount.com>2023-06-18 18:29:00 -0700
committerSecurityBot <android-nexus-securitybot@system.gserviceaccount.com>2023-06-18 18:29:00 -0700
commit5a3af3b52d23538064abf2ebc9540c7755725708 (patch)
tree8d67bf5a07a7cda23e64aac59ad7a8b36be5bc66
parent29b52b7d8cf7d0291e593c09cab7f5b3c3d9f486 (diff)
parentca671355ca8e458a36e6b3fb10c7052ce048dce7 (diff)
downloadwlan-5a3af3b52d23538064abf2ebc9540c7755725708.tar.gz
Merge android13-gs-pixel-5.10-udc into android13-gs-pixel-5.10-udc-qpr1
SBMerger: 526756187 Change-Id: If5e42685b5b21a7e4cf0fd8d2d7005413e738b46 Signed-off-by: SecurityBot <android-nexus-securitybot@system.gserviceaccount.com>
-rw-r--r--qcacld-3.0/core/hdd/src/wlan_hdd_driver_ops.c7
-rw-r--r--qcacld-3.0/core/mac/src/pe/lim/lim_utils.c19
2 files changed, 16 insertions, 10 deletions
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 2c8498e..a2dd000 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
@@ -2058,6 +2058,7 @@ wlan_hdd_pld_uevent(struct device *dev, struct pld_uevent_data *event_data)
struct qdf_notifer_data hang_evt_data;
enum qdf_hang_reason reason = QDF_REASON_UNSPECIFIED;
uint8_t bus_type;
+ void *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF);
bus_type = pld_get_bus_type(dev);
@@ -2098,6 +2099,12 @@ wlan_hdd_pld_uevent(struct device *dev, struct pld_uevent_data *event_data)
case PLD_FW_HANG_EVENT:
cds_get_recovery_reason(&reason);
hdd_info("Received firmware hang event, reason: %d", reason);
+
+ if ((reason == QDF_REASON_UNSPECIFIED) && hif_ctx) {
+ hif_display_ctrl_traffic_pipes_state(hif_ctx);
+ hif_display_latest_desc_hist(hif_ctx);
+ }
+
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/mac/src/pe/lim/lim_utils.c b/qcacld-3.0/core/mac/src/pe/lim/lim_utils.c
index 58a0f6a..0689898 100644
--- a/qcacld-3.0/core/mac/src/pe/lim/lim_utils.c
+++ b/qcacld-3.0/core/mac/src/pe/lim/lim_utils.c
@@ -1874,17 +1874,16 @@ static void __lim_process_channel_switch_timeout(struct pe_session *pe_session)
}
/*
- * If the channel-list that AP is asking us to switch is invalid
- * then we cannot switch the channel. Just disassociate from AP.
- * We will find a better AP !!!
+ * The channel switch request received from AP is carrying
+ * invalid channel. It's ok to ignore this channel switch
+ * request as it might be from spoof AP. If it's from genuine
+ * AP, it may lead to heart beat failure and result in
+ * disconnection. DUT can go ahead and reconnect to it/any
+ * other AP once it disconnects.
*/
- if (lim_is_sb_disconnect_allowed(pe_session)) {
- pe_err("Invalid channel! Disconnect");
- lim_tear_down_link_with_ap(mac, pe_session->peSessionId,
- REASON_UNSUPPORTED_CHANNEL_CSA,
- eLIM_LINK_MONITORING_DISASSOC);
- return;
- }
+ pe_err("Invalid channel freq %u Ignore CSA request",
+ channel_freq);
+ return;
}
switch (pe_session->gLimChannelSwitch.state) {
case eLIM_CHANNEL_SWITCH_PRIMARY_ONLY: