qcacmn: Rate limit error logs from send_diag_netlink_data
Introduce proper logging APIs for diag module and also rate limit error logs when skb allocation fails in low memory conditions to avoid excessive logging side effects Change-Id: Ia41ff7cfd526180825df61a43f1f59163947f257 CRs-Fixed: 2836681
This commit is contained in:
@@ -391,6 +391,7 @@ typedef bool (*qdf_irqlocked_func_t)(void *);
|
|||||||
* @QDF_MODULE_ID_IFMGR: Interface Manager feature ID
|
* @QDF_MODULE_ID_IFMGR: Interface Manager feature ID
|
||||||
* @QDF_MODULE_ID_MSCS: MSCS feature ID
|
* @QDF_MODULE_ID_MSCS: MSCS feature ID
|
||||||
* @QDF_MODULE_ID_GPIO: GPIO configuration module ID
|
* @QDF_MODULE_ID_GPIO: GPIO configuration module ID
|
||||||
|
* @QDF_MODULE_ID_DIAG: Host diag module ID
|
||||||
* @QDF_MODULE_ID_ANY: anything
|
* @QDF_MODULE_ID_ANY: anything
|
||||||
* @QDF_MODULE_ID_MAX: Max place holder module ID
|
* @QDF_MODULE_ID_MAX: Max place holder module ID
|
||||||
*
|
*
|
||||||
@@ -522,6 +523,7 @@ typedef enum {
|
|||||||
QDF_MODULE_ID_IFMGR,
|
QDF_MODULE_ID_IFMGR,
|
||||||
QDF_MODULE_ID_MSCS,
|
QDF_MODULE_ID_MSCS,
|
||||||
QDF_MODULE_ID_GPIO,
|
QDF_MODULE_ID_GPIO,
|
||||||
|
QDF_MODULE_ID_DIAG,
|
||||||
QDF_MODULE_ID_ANY,
|
QDF_MODULE_ID_ANY,
|
||||||
QDF_MODULE_ID_MAX,
|
QDF_MODULE_ID_MAX,
|
||||||
} QDF_MODULE_ID;
|
} QDF_MODULE_ID;
|
||||||
|
@@ -3170,6 +3170,7 @@ struct category_name_info g_qdf_category_name[MAX_SUPPORTED_CATEGORY] = {
|
|||||||
[QDF_MODULE_ID_MSCS] = {"MSCS"},
|
[QDF_MODULE_ID_MSCS] = {"MSCS"},
|
||||||
[QDF_MODULE_ID_GPIO] = {"GPIO_CFG"},
|
[QDF_MODULE_ID_GPIO] = {"GPIO_CFG"},
|
||||||
[QDF_MODULE_ID_IFMGR] = {"IF_MGR"},
|
[QDF_MODULE_ID_IFMGR] = {"IF_MGR"},
|
||||||
|
[QDF_MODULE_ID_DIAG] = {"DIAG"},
|
||||||
};
|
};
|
||||||
qdf_export_symbol(g_qdf_category_name);
|
qdf_export_symbol(g_qdf_category_name);
|
||||||
|
|
||||||
@@ -3719,6 +3720,7 @@ static void set_default_trace_levels(struct category_info *cinfo)
|
|||||||
[QDF_MODULE_ID_MSCS] = QDF_TRACE_LEVEL_INFO,
|
[QDF_MODULE_ID_MSCS] = QDF_TRACE_LEVEL_INFO,
|
||||||
[QDF_MODULE_ID_GPIO] = QDF_TRACE_LEVEL_NONE,
|
[QDF_MODULE_ID_GPIO] = QDF_TRACE_LEVEL_NONE,
|
||||||
[QDF_MODULE_ID_IFMGR] = QDF_TRACE_LEVEL_ERROR,
|
[QDF_MODULE_ID_IFMGR] = QDF_TRACE_LEVEL_ERROR,
|
||||||
|
[QDF_MODULE_ID_DIAG] = QDF_TRACE_LEVEL_ERROR,
|
||||||
};
|
};
|
||||||
|
|
||||||
for (i = 0; i < MAX_SUPPORTED_CATEGORY; i++) {
|
for (i = 0; i < MAX_SUPPORTED_CATEGORY; i++) {
|
||||||
|
@@ -1750,8 +1750,7 @@ send_diag_netlink_data(const uint8_t *buffer, uint32_t len, uint32_t cmd)
|
|||||||
|
|
||||||
skb_out = nlmsg_new(slot_len, GFP_ATOMIC);
|
skb_out = nlmsg_new(slot_len, GFP_ATOMIC);
|
||||||
if (!skb_out) {
|
if (!skb_out) {
|
||||||
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,
|
diag_err_rl("Failed to allocate new skb");
|
||||||
("Failed to allocate new skb\n"));
|
|
||||||
return A_ERROR;
|
return A_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -69,6 +69,14 @@ extern "C" {
|
|||||||
#define DIAG_GET_PAYLEN16(arg) \
|
#define DIAG_GET_PAYLEN16(arg) \
|
||||||
((arg & DIAG_PAYLEN_MASK16) >> DIAG_PAYLEN_OFFSET16)
|
((arg & DIAG_PAYLEN_MASK16) >> DIAG_PAYLEN_OFFSET16)
|
||||||
|
|
||||||
|
#define diag_alert(params...) QDF_TRACE_FATAL(QDF_MODULE_ID_DIAG, params)
|
||||||
|
#define diag_err(params...) QDF_TRACE_ERROR(QDF_MODULE_ID_DIAG, params)
|
||||||
|
#define diag_warn(params...) QDF_TRACE_WARN(QDF_MODULE_ID_DIAG, params)
|
||||||
|
#define diag_info(params...) QDF_TRACE_INFO(QDF_MODULE_ID_DIAG, params)
|
||||||
|
#define diag_debug(params...) QDF_TRACE_DEBUG(QDF_MODULE_ID_DIAG, params)
|
||||||
|
|
||||||
|
#define diag_err_rl(params...) QDF_TRACE_ERROR_RL(QDF_MODULE_ID_DIAG, params)
|
||||||
|
|
||||||
#ifdef FEATURE_FW_LOG_PARSING
|
#ifdef FEATURE_FW_LOG_PARSING
|
||||||
/*
|
/*
|
||||||
* set the dbglog parser type
|
* set the dbglog parser type
|
||||||
|
Reference in New Issue
Block a user