qcacmn: Allocate MAC Trace buffer dynamically
Allocate memory for g_qdf_trace_tbl buffer dynamically. Change-Id: I5e9ba0a33e220ead36e0775f00000346aae68373 CRs-Fixed: 2267922
This commit is contained in:
@@ -503,6 +503,7 @@ static inline void qdf_register_debugcb_init(void)
|
||||
#ifdef TRACE_RECORD
|
||||
void qdf_trace_register(QDF_MODULE_ID, tp_qdf_trace_cb);
|
||||
void qdf_trace_init(void);
|
||||
void qdf_trace_deinit(void);
|
||||
void qdf_trace(uint8_t module, uint8_t code, uint16_t session, uint32_t data);
|
||||
void qdf_trace_enable(uint32_t, uint8_t enable);
|
||||
void qdf_trace_dump_all(void *, uint8_t, uint8_t, uint32_t, uint32_t);
|
||||
@@ -514,6 +515,11 @@ void qdf_trace_init(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
void qdf_trace_deinit(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
void qdf_trace_enable(uint32_t bitmask_of_module_id, uint8_t enable)
|
||||
{
|
||||
|
@@ -88,8 +88,6 @@ module_trace_info g_qdf_trace_info[QDF_MODULE_ID_MAX] = {
|
||||
#ifdef TRACE_RECORD
|
||||
/* Static and Global variables */
|
||||
static spinlock_t ltrace_lock;
|
||||
|
||||
static qdf_trace_record_t g_qdf_trace_tbl[MAX_QDF_TRACE_RECORDS];
|
||||
/* global qdf trace data */
|
||||
static t_qdf_trace_data g_qdf_trace_data;
|
||||
/*
|
||||
@@ -102,6 +100,13 @@ static t_qdf_trace_data g_qdf_trace_data;
|
||||
*/
|
||||
static tp_qdf_trace_cb qdf_trace_cb_table[QDF_MODULE_ID_MAX];
|
||||
static tp_qdf_trace_cb qdf_trace_restore_cb_table[QDF_MODULE_ID_MAX];
|
||||
|
||||
#ifdef WLAN_LOGGING_BUFFERS_DYNAMICALLY
|
||||
static qdf_trace_record_t *g_qdf_trace_tbl;
|
||||
#else
|
||||
static qdf_trace_record_t g_qdf_trace_tbl[MAX_QDF_TRACE_RECORDS];
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_MEMDUMP_ENABLE
|
||||
@@ -376,6 +381,30 @@ qdf_export_symbol(qdf_trace_hex_dump);
|
||||
#endif
|
||||
|
||||
#ifdef TRACE_RECORD
|
||||
|
||||
#ifdef WLAN_LOGGING_BUFFERS_DYNAMICALLY
|
||||
static inline QDF_STATUS allocate_g_qdf_trace_tbl_buffer(void)
|
||||
{
|
||||
g_qdf_trace_tbl = vzalloc(MAX_QDF_TRACE_RECORDS *
|
||||
sizeof(*g_qdf_trace_tbl));
|
||||
QDF_BUG(g_qdf_trace_tbl);
|
||||
return g_qdf_trace_tbl ? QDF_STATUS_SUCCESS : QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
||||
static inline void free_g_qdf_trace_tbl_buffer(void)
|
||||
{
|
||||
vfree(g_qdf_trace_tbl);
|
||||
g_qdf_trace_tbl = NULL;
|
||||
}
|
||||
#else
|
||||
static inline QDF_STATUS allocate_g_qdf_trace_tbl_buffer(void)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline void free_g_qdf_trace_tbl_buffer(void)
|
||||
{ }
|
||||
#endif
|
||||
/**
|
||||
* qdf_trace_enable() - Enable MTRACE for specific modules
|
||||
* @bitmask_of_module_id: Bitmask according to enum of the modules.
|
||||
@@ -446,6 +475,8 @@ void qdf_trace_init(void)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
if (allocate_g_qdf_trace_tbl_buffer() != QDF_STATUS_SUCCESS)
|
||||
return;
|
||||
g_qdf_trace_data.head = INVALID_QDF_TRACE_ADDR;
|
||||
g_qdf_trace_data.tail = INVALID_QDF_TRACE_ADDR;
|
||||
g_qdf_trace_data.num = 0;
|
||||
@@ -460,6 +491,26 @@ void qdf_trace_init(void)
|
||||
}
|
||||
qdf_export_symbol(qdf_trace_init);
|
||||
|
||||
/**
|
||||
* qdf_trace_deinit() - frees memory allocated dynamically
|
||||
*
|
||||
* Called from cds_deinit, so that we can free the memory and resets
|
||||
* the variables
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void qdf_trace_deinit(void)
|
||||
{
|
||||
g_qdf_trace_data.enable = false;
|
||||
g_qdf_trace_data.num = 0;
|
||||
g_qdf_trace_data.head = INVALID_QDF_TRACE_ADDR;
|
||||
g_qdf_trace_data.tail = INVALID_QDF_TRACE_ADDR;
|
||||
|
||||
free_g_qdf_trace_tbl_buffer();
|
||||
}
|
||||
|
||||
qdf_export_symbol(qdf_trace_deinit);
|
||||
|
||||
/**
|
||||
* qdf_trace() - puts the messages in to ring-buffer
|
||||
* @module: Enum of module, basically module id.
|
||||
|
Reference in New Issue
Block a user