From b85cefd1a6869c7b4a2710a3cc43e3d545b90e16 Mon Sep 17 00:00:00 2001 From: Mahesh Kumar Kalikot Veetil Date: Mon, 14 Aug 2017 14:03:32 -0700 Subject: [PATCH] qcacld-3.0: Fix early qdf prints Fix the error print: 'qdf_trace_msg_cmn: Invalid index - -1'. Move the qdf print registration to early in driver initialization. Change-Id: I338e6615d7f76110df762d725f535fb7493cb1cd CRs-Fixed: 2092806 --- core/hdd/src/wlan_hdd_main.c | 137 +++++++++++++++++++---------------- 1 file changed, 75 insertions(+), 62 deletions(-) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 32601c1be996..3860f6e3be98 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -216,6 +216,43 @@ static const struct wiphy_wowlan_support wowlan_support_reg_init = { }; #endif +static const struct category_info cinfo[MAX_SUPPORTED_CATEGORY] = { + [QDF_MODULE_ID_TLSHIM] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_WMI] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_HTT] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_HDD] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_SME] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_PE] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_WMA] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_SYS] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_QDF] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_SAP] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_HDD_SOFTAP] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_HDD_DATA] = {QDF_DATA_PATH_TRACE_LEVEL}, + [QDF_MODULE_ID_HDD_SAP_DATA] = {QDF_DATA_PATH_TRACE_LEVEL}, + [QDF_MODULE_ID_HIF] = {QDF_DATA_PATH_TRACE_LEVEL}, + [QDF_MODULE_ID_HTC] = {QDF_DATA_PATH_TRACE_LEVEL}, + [QDF_MODULE_ID_TXRX] = {QDF_DATA_PATH_TRACE_LEVEL}, + [QDF_MODULE_ID_QDF_DEVICE] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_CFG] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_BMI] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_EPPING] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_QVIT] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_DP] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_SOC] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_OS_IF] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_TARGET_IF] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_SCHEDULER] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_MGMT_TXRX] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_PMO] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_SCAN] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_POLICY_MGR] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_P2P] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_TDLS] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_REGULATORY] = {QDF_TRACE_LEVEL_ALL}, + [QDF_MODULE_ID_SERIALIZATION] = {QDF_TRACE_LEVEL_ALL}, +}; + /* internal function declaration */ struct notifier_block hdd_netdev_notifier; @@ -7490,65 +7527,6 @@ static hdd_context_t *hdd_context_create(struct device *dev) int ret = 0; hdd_context_t *hdd_ctx; v_CONTEXT_t p_cds_context; - int qdf_print_idx = -1; - - struct category_info cinfo[MAX_SUPPORTED_CATEGORY] = { - [QDF_MODULE_ID_TLSHIM] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_WMI] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_HTT] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_HDD] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_SME] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_PE] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_WMA] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_SYS] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_QDF] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_SAP] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_HDD_SOFTAP] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_HDD_DATA] = {QDF_DATA_PATH_TRACE_LEVEL}, - [QDF_MODULE_ID_HDD_SAP_DATA] = {QDF_DATA_PATH_TRACE_LEVEL}, - [QDF_MODULE_ID_HIF] = {QDF_DATA_PATH_TRACE_LEVEL}, - [QDF_MODULE_ID_HTC] = {QDF_DATA_PATH_TRACE_LEVEL}, - [QDF_MODULE_ID_TXRX] = {QDF_DATA_PATH_TRACE_LEVEL}, - [QDF_MODULE_ID_QDF_DEVICE] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_CFG] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_BMI] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_EPPING] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_QVIT] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_DP] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_SOC] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_OS_IF] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_TARGET_IF] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_SCHEDULER] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_MGMT_TXRX] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_PMO] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_SCAN] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_POLICY_MGR] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_P2P] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_TDLS] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_REGULATORY] = {QDF_TRACE_LEVEL_ALL}, - [QDF_MODULE_ID_SERIALIZATION] = {QDF_TRACE_LEVEL_ALL}, - }; - - status = qdf_print_setup(); - if (status != QDF_STATUS_SUCCESS) { - pr_err("QDF print control object setup failed\n"); - ret = -EINVAL; - goto err_out; - } - /* Register the module here with QDF */ - qdf_print_idx = qdf_print_ctrl_register(cinfo, NULL, NULL, - "MCL_WLAN"); - - /* if qdf_print_idx is negative */ - if (qdf_print_idx < 0) { - pr_err("QDF print control can not be registered %d\n", - qdf_print_idx); - ret = -EINVAL; - goto err_out; - } - - /* Store the qdf_pidx information into qdf module */ - qdf_set_pidx(qdf_print_idx); ENTER(); @@ -7624,6 +7602,8 @@ static hdd_context_t *hdd_context_create(struct device *dev) skip_multicast_logging: hdd_set_trace_level_for_each(hdd_ctx); + EXIT(); + return hdd_ctx; err_free_histogram: @@ -10548,6 +10528,38 @@ const char *hdd_get_fwpath(void) return fwpath.string; } +static int hdd_qdf_print_init(void) +{ + int qdf_print_idx; + QDF_STATUS status; + + status = qdf_print_setup(); + if (status != QDF_STATUS_SUCCESS) { + pr_err("qdf_print_setup failed\n"); + return -EINVAL; + } + + qdf_print_idx = qdf_print_ctrl_register(cinfo, NULL, NULL, "MCL_WLAN"); + + if (qdf_print_idx < 0) { + pr_err("qdf_print_ctrl_register failed, ret = %d\n", + qdf_print_idx); + return -EINVAL; + } + + qdf_set_pidx(qdf_print_idx); + + return 0; +} + +static void hdd_qdf_print_deinit(void) +{ + int qdf_print_idx; + + qdf_print_idx = qdf_get_pidx(); + qdf_print_ctrl_cleanup(qdf_print_idx); +} + /** * hdd_init() - Initialize Driver * @@ -10574,6 +10586,8 @@ int hdd_init(void) } hdd_trace_init(); + hdd_qdf_print_init(); + hdd_register_debug_callback(); err_out: @@ -10592,6 +10606,8 @@ void hdd_deinit(void) hdd_deinit_wowl(); cds_deinit(); + hdd_qdf_print_deinit(); + #ifdef WLAN_LOGGING_SOCK_SVC_ENABLE wlan_logging_sock_deinit_svc(); #endif @@ -10830,7 +10846,6 @@ static void hdd_wait_for_recovery_completion(void) */ static void __hdd_module_exit(void) { - int qdf_print_idx = -1; pr_info("%s: Unloading driver v%s\n", WLAN_MODULE_NAME, QWLAN_VERSIONSTR); @@ -10850,8 +10865,6 @@ static void __hdd_module_exit(void) hdd_deinit(); pld_deinit(); - qdf_print_idx = qdf_get_pidx(); - qdf_print_ctrl_cleanup(qdf_print_idx); wlan_hdd_state_ctrl_param_destroy(); }