Revert "Revert "mm: cma: make writeable CMA debugfs optional""

This reverts commit 8d0b09d4f2.
With CONFIG_DEBUG_FS enable for non-debug build, we can enable read only
CMA debugfs nodes on all builds.

Change-Id: Ia4a0a9431e27ec908feaae54dbe622a1d985958b
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
This commit is contained in:
Prakash Gupta 2020-12-15 16:57:06 +05:30
parent aa860b5b17
commit 1a394f02c0
2 changed files with 19 additions and 0 deletions

View File

@ -518,6 +518,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

View File

@ -74,6 +74,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);
@ -132,8 +133,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;
@ -164,6 +170,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, struct dentry *root_dentry)