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
|
help
|
||||||
Turns on the DebugFS interface for CMA.
|
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
|
config CMA_AREAS
|
||||||
int "Maximum count of the CMA areas"
|
int "Maximum count of the CMA areas"
|
||||||
depends on CMA
|
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");
|
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)
|
static void cma_add_to_cma_mem_list(struct cma *cma, struct cma_mem *mem)
|
||||||
{
|
{
|
||||||
spin_lock(&cma->mem_head_lock);
|
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);
|
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");
|
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)
|
static int cma_alloc_mem(struct cma *cma, int count)
|
||||||
{
|
{
|
||||||
struct cma_mem *mem;
|
struct cma_mem *mem;
|
||||||
@@ -166,6 +172,10 @@ static int cma_alloc_write(void *data, u64 val)
|
|||||||
|
|
||||||
return cma_alloc_mem(cma, pages);
|
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");
|
DEFINE_SIMPLE_ATTRIBUTE(cma_alloc_fops, NULL, cma_alloc_write, "%llu\n");
|
||||||
|
|
||||||
static void cma_debugfs_add_one(struct cma *cma, int idx)
|
static void cma_debugfs_add_one(struct cma *cma, int idx)
|
||||||
|
|||||||
Reference in New Issue
Block a user