[PATCH] mm-cma-add-functions-to-get-region-pages-counters-fix-2

From: Stefan Strogin
Date: Mon Apr 06 2015 - 17:32:10 EST


Move the code from cma_get_used() and cma_get_maxchunk() to cma_used_get()
and cma_maxchunk_get(), because cma_get_*() aren't used anywhere else, and
because of their confusing similar names.

Signed-off-by: Stefan Strogin <stefan.strogin@xxxxxxxxx>
---
mm/cma_debug.c | 51 ++++++++++++++++++---------------------------------
1 file changed, 18 insertions(+), 33 deletions(-)

diff --git a/mm/cma_debug.c b/mm/cma_debug.c
index 56c4175..abb9d0b 100644
--- a/mm/cma_debug.c
+++ b/mm/cma_debug.c
@@ -22,37 +22,6 @@ struct cma_mem {

static struct dentry *cma_debugfs_root;

-static unsigned long cma_get_used(struct cma *cma)
-{
- unsigned long ret = 0;
-
- mutex_lock(&cma->lock);
- /* pages counter is smaller than sizeof(int) */
- ret = bitmap_weight(cma->bitmap, (int)cma->count);
- mutex_unlock(&cma->lock);
-
- return ret << cma->order_per_bit;
-}
-
-static unsigned long cma_get_maxchunk(struct cma *cma)
-{
- unsigned long maxchunk = 0;
- unsigned long start, end = 0;
-
- mutex_lock(&cma->lock);
- for (;;) {
- start = find_next_zero_bit(cma->bitmap, cma->count, end);
- if (start >= cma->count)
- break;
- end = find_next_bit(cma->bitmap, cma->count, start);
- maxchunk = max(end - start, maxchunk);
- }
- mutex_unlock(&cma->lock);
-
- return maxchunk << cma->order_per_bit;
-}
-
-
static int cma_debugfs_get(void *data, u64 *val)
{
unsigned long *p = data;
@@ -66,8 +35,13 @@ DEFINE_SIMPLE_ATTRIBUTE(cma_debugfs_fops, cma_debugfs_get, NULL, "%llu\n");
static int cma_used_get(void *data, u64 *val)
{
struct cma *cma = data;
+ unsigned long used;

- *val = cma_get_used(cma);
+ mutex_lock(&cma->lock);
+ /* pages counter is smaller than sizeof(int) */
+ used = bitmap_weight(cma->bitmap, (int)cma->count);
+ mutex_unlock(&cma->lock);
+ *val = used << cma->order_per_bit;

return 0;
}
@@ -76,8 +50,19 @@ DEFINE_SIMPLE_ATTRIBUTE(cma_used_fops, cma_used_get, NULL, "%llu\n");
static int cma_maxchunk_get(void *data, u64 *val)
{
struct cma *cma = data;
+ unsigned long maxchunk = 0;
+ unsigned long start, end = 0;

- *val = cma_get_maxchunk(cma);
+ mutex_lock(&cma->lock);
+ for (;;) {
+ start = find_next_zero_bit(cma->bitmap, cma->count, end);
+ if (start >= cma->count)
+ break;
+ end = find_next_bit(cma->bitmap, cma->count, start);
+ maxchunk = max(end - start, maxchunk);
+ }
+ mutex_unlock(&cma->lock);
+ *val = maxchunk << cma->order_per_bit;

return 0;
}
--
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/