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
这个提交包含在:
Asutosh Mohapatra
2023-01-16 16:06:33 +05:30
提交者 Madan Koyyalamudi
父节点 7318f8bed4
当前提交 c639cb8500
修改 2 个文件,包含 29 行新增2 行删除

查看文件

@@ -1298,6 +1298,33 @@ hdd_convert_hang_reason(enum qdf_hang_reason reason)
case QDF_TASKLET_CREDIT_LATENCY_DETECT: case QDF_TASKLET_CREDIT_LATENCY_DETECT:
ret_val = QCA_WLAN_HANG_TASKLET_CREDIT_LATENCY_DETECT; ret_val = QCA_WLAN_HANG_TASKLET_CREDIT_LATENCY_DETECT;
break; 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: case QDF_REASON_UNSPECIFIED:
default: default:
ret_val = QCA_WLAN_HANG_REASON_UNSPECIFIED; ret_val = QCA_WLAN_HANG_REASON_UNSPECIFIED;

查看文件

@@ -691,7 +691,7 @@ wma_vdev_self_peer_delete(tp_wma_handle wma_handle,
vdev_id); vdev_id);
wma_handle_vdev_detach(wma_handle, pdel_vdev_req_param); wma_handle_vdev_detach(wma_handle, pdel_vdev_req_param);
mlme_vdev_self_peer_delete_resp(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; return status;
} }
} else if (iface->type == WMI_VDEV_TYPE_STA || } 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: send_fail_rsp:
wma_err("rcvd del_self_sta without del_bss; vdev_id:%d", vdev_id); 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; status = QDF_STATUS_E_FAILURE;
return status; return status;
} }