qcacmn: Remove CONFIG_CNSS ifdef for memory proallocatation

Memory preallocation is hidden behind two flags, CONFIG_CNSS and
CONFIG_WCNSS_MEM_PRE_ALLOC. Remove the check for CONFIG_CNSS, as the
presence of CONFIG_WCNSS_MEM_PRE_ALLOC is enough.

Change-Id: I233f6f31065c2d1da1ffb25a5013a17ac0b99246
CRs-Fixed: 2016844
Este commit está contenido en:
Dustin Brown
2017-03-08 15:06:20 -08:00
cometido por Sandeep Puligilla
padre 7cf5f320ee
commit 747001c110

Ver fichero

@@ -826,6 +826,47 @@ void qdf_mem_exit(void)
}
EXPORT_SYMBOL(qdf_mem_exit);
#ifdef CONFIG_WCNSS_MEM_PRE_ALLOC
/**
* qdf_mem_prealloc_get() - conditionally pre-allocate memory
* @size: the number of bytes to allocate
*
* If size if greater than WCNSS_PRE_ALLOC_GET_THRESHOLD, this function returns
* a chunk of pre-allocated memory. If size if less than or equal to
* WCNSS_PRE_ALLOC_GET_THRESHOLD, or an error occurs, NULL is returned instead.
*
* Return: NULL on failure, non-NULL on success
*/
static void *qdf_mem_prealloc_get(size_t size)
{
void *mem;
if (size <= WCNSS_PRE_ALLOC_GET_THRESHOLD)
return NULL;
mem = wcnss_prealloc_get(size);
if (mem)
memset(mem, 0, size);
return mem;
}
static inline bool qdf_mem_prealloc_put(void *ptr)
{
return wcnss_prealloc_put(ptr);
}
#else
static inline void *qdf_mem_prealloc_get(size_t size)
{
return NULL;
}
static inline bool qdf_mem_prealloc_put(void *ptr)
{
return false;
}
#endif /* CONFIG_WCNSS_MEM_PRE_ALLOC */
/**
* qdf_mem_malloc_debug() - debug version of QDF memory allocation API
* @size: Number of bytes of memory to allocate.
@@ -858,16 +899,9 @@ void *qdf_mem_malloc_debug(size_t size,
return NULL;
}
#if defined(CONFIG_CNSS) && defined(CONFIG_WCNSS_MEM_PRE_ALLOC)
if (size > WCNSS_PRE_ALLOC_GET_THRESHOLD) {
void *pmem;
pmem = wcnss_prealloc_get(size);
if (NULL != pmem) {
memset(pmem, 0, size);
return pmem;
}
}
#endif
mem_ptr = qdf_mem_prealloc_get(size);
if (mem_ptr)
return mem_ptr;
if (in_interrupt() || irqs_disabled() || in_atomic())
flags = GFP_ATOMIC;
@@ -983,10 +1017,9 @@ void qdf_mem_free(void *ptr)
QDF_BUG(0);
}
#if defined(CONFIG_CNSS) && defined(CONFIG_WCNSS_MEM_PRE_ALLOC)
if (wcnss_prealloc_put(ptr))
if (qdf_mem_prealloc_put(ptr))
return;
#endif
if (!qdf_atomic_dec_and_test(&mem_struct->in_use))
return;
@@ -1085,6 +1118,11 @@ EXPORT_SYMBOL(qdf_mem_free);
void *qdf_mem_malloc(size_t size)
{
int flags = GFP_KERNEL;
void *mem;
mem = qdf_mem_prealloc_get(size);
if (mem)
return mem;
if (in_interrupt() || irqs_disabled() || in_atomic())
flags = GFP_ATOMIC;
@@ -1105,10 +1143,10 @@ void qdf_mem_free(void *ptr)
{
if (ptr == NULL)
return;
#if defined(CONFIG_CNSS) && defined(CONFIG_WCNSS_MEM_PRE_ALLOC)
if (wcnss_prealloc_put(ptr))
if (qdf_mem_prealloc_put(ptr))
return;
#endif
kfree(ptr);
}
EXPORT_SYMBOL(qdf_mem_free);