qcacld-3.0: Enhance hang reason code mappings

Currently many host hang reason codes are not mapped to corresponding
userspace codes as a result these hang reason code will be invalid
for userspace and also QDF_REASON_UNSPECIFIED is used in some places
in host.

To add mappings for host hang codes to corresponding to userspace
hang codes and also add new hang codes.

Change-Id: Id617c2bbfd72b0e83b50f522fd1313fbc9eea2cc
CRs-Fixed: 3381230
This commit is contained in:
Asutosh Mohapatra
2023-01-16 16:06:33 +05:30
committed by Madan Koyyalamudi
parent 7318f8bed4
commit c639cb8500
2 changed files with 29 additions and 2 deletions

View File

@@ -1298,6 +1298,33 @@ hdd_convert_hang_reason(enum qdf_hang_reason reason)
case QDF_TASKLET_CREDIT_LATENCY_DETECT:
ret_val = QCA_WLAN_HANG_TASKLET_CREDIT_LATENCY_DETECT;
break;
case QDF_RX_REG_PKT_ROUTE_ERR:
ret_val = QCA_WLAN_HANG_RX_MSDU_BUF_RCVD_IN_ERR_RING;
break;
case QDF_VDEV_SM_OUT_OF_SYNC:
ret_val = QCA_WLAN_HANG_VDEV_SM_OUT_OF_SYNC;
break;
case QDF_STATS_REQ_TIMEDOUT:
ret_val = QCA_WLAN_HANG_STATS_REQ_TIMEOUT;
break;
case QDF_TX_DESC_LEAK:
ret_val = QCA_WLAN_HANG_TX_DESC_LEAK;
break;
case QDF_SCHED_TIMEOUT:
ret_val = QCA_WLAN_HANG_SCHED_TIMEOUT;
break;
case QDF_SELF_PEER_DEL_FAILED:
ret_val = QCA_WLAN_HANG_SELF_PEER_DEL_FAIL;
break;
case QDF_DEL_SELF_STA_FAILED:
ret_val = QCA_WLAN_HANG_DEL_SELF_STA_FAIL;
break;
case QDF_FLUSH_LOGS:
ret_val = QCA_WLAN_HANG_FLUSH_LOGS;
break;
case QDF_HOST_WAKEUP_REASON_PAGEFAULT:
ret_val = QCA_WLAN_HANG_HOST_WAKEUP_REASON_PAGE_FAULT;
break;
case QDF_REASON_UNSPECIFIED:
default:
ret_val = QCA_WLAN_HANG_REASON_UNSPECIFIED;

View File

@@ -691,7 +691,7 @@ wma_vdev_self_peer_delete(tp_wma_handle wma_handle,
vdev_id);
wma_handle_vdev_detach(wma_handle, pdel_vdev_req_param);
mlme_vdev_self_peer_delete_resp(pdel_vdev_req_param);
cds_trigger_recovery(QDF_REASON_UNSPECIFIED);
cds_trigger_recovery(QDF_SELF_PEER_DEL_FAILED);
return status;
}
} else if (iface->type == WMI_VDEV_TYPE_STA ||
@@ -755,7 +755,7 @@ QDF_STATUS wma_vdev_detach(struct del_vdev_params *pdel_vdev_req_param)
send_fail_rsp:
wma_err("rcvd del_self_sta without del_bss; vdev_id:%d", vdev_id);
cds_trigger_recovery(QDF_REASON_UNSPECIFIED);
cds_trigger_recovery(QDF_DEL_SELF_STA_FAILED);
status = QDF_STATUS_E_FAILURE;
return status;
}