diff options
author | PixelBot AutoMerger <android-nexus-securitybot@system.gserviceaccount.com> | 2023-06-18 18:29:00 -0700 |
---|---|---|
committer | SecurityBot <android-nexus-securitybot@system.gserviceaccount.com> | 2023-06-18 18:29:00 -0700 |
commit | 5a3af3b52d23538064abf2ebc9540c7755725708 (patch) | |
tree | 8d67bf5a07a7cda23e64aac59ad7a8b36be5bc66 | |
parent | 29b52b7d8cf7d0291e593c09cab7f5b3c3d9f486 (diff) | |
parent | ca671355ca8e458a36e6b3fb10c7052ce048dce7 (diff) | |
download | wlan-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.c | 7 | ||||
-rw-r--r-- | qcacld-3.0/core/mac/src/pe/lim/lim_utils.c | 19 |
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: |