Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76adf148 authored by Prakash Gupta's avatar Prakash Gupta
Browse files

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: default avatarPrakash Gupta <guptap@codeaurora.org>
parent 71d6cbd1
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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
+10 −0
Original line number Diff line number Diff line
@@ -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)