mm: cma: make writeable CMA debugfs optional
Make writeable CMA debugfs optional. This will allow exposing readonly CMA debugfs entries for stats. Change-Id: I35cbaa11df5a1d8bb4a2496fcc1b6166ce64abf0 Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
This commit is contained in:
@@ -529,6 +529,15 @@ config CMA_DEBUGFS
|
||||
help
|
||||
Turns on the DebugFS interface for CMA.
|
||||
|
||||
config CMA_ALLOW_WRITE_DEBUGFS
|
||||
depends on CMA_DEBUGFS
|
||||
bool "Allow CMA debugfs write"
|
||||
help
|
||||
Say 'y' here to allow the CMA debugfs write.
|
||||
CMA debugfs write could be risky as it allows
|
||||
cma allocation, so it is not recommended to
|
||||
enable this option on any production device.
|
||||
|
||||
config CMA_AREAS
|
||||
int "Maximum count of the CMA areas"
|
||||
depends on CMA
|
||||
|
||||
@@ -76,6 +76,7 @@ static int cma_maxchunk_get(void *data, u64 *val)
|
||||
}
|
||||
DEFINE_SIMPLE_ATTRIBUTE(cma_maxchunk_fops, cma_maxchunk_get, NULL, "%llu\n");
|
||||
|
||||
#ifdef CONFIG_CMA_ALLOW_WRITE_DEBUGFS
|
||||
static void cma_add_to_cma_mem_list(struct cma *cma, struct cma_mem *mem)
|
||||
{
|
||||
spin_lock(&cma->mem_head_lock);
|
||||
@@ -134,8 +135,13 @@ static int cma_free_write(void *data, u64 val)
|
||||
|
||||
return cma_free_mem(cma, pages);
|
||||
}
|
||||
#else
|
||||
#define cma_free_write NULL
|
||||
#endif
|
||||
|
||||
DEFINE_SIMPLE_ATTRIBUTE(cma_free_fops, NULL, cma_free_write, "%llu\n");
|
||||
|
||||
#ifdef CONFIG_CMA_ALLOW_WRITE_DEBUGFS
|
||||
static int cma_alloc_mem(struct cma *cma, int count)
|
||||
{
|
||||
struct cma_mem *mem;
|
||||
@@ -166,6 +172,10 @@ static int cma_alloc_write(void *data, u64 val)
|
||||
|
||||
return cma_alloc_mem(cma, pages);
|
||||
}
|
||||
#else
|
||||
#define cma_alloc_write NULL
|
||||
#endif
|
||||
|
||||
DEFINE_SIMPLE_ATTRIBUTE(cma_alloc_fops, NULL, cma_alloc_write, "%llu\n");
|
||||
|
||||
static void cma_debugfs_add_one(struct cma *cma, int idx)
|
||||
|
||||
Reference in New Issue
Block a user