From: Eamon Sippy <eamon112009@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Eamon Sippy <eamon112009@gmail.com>
Subject: [PATCH] mm: cma: make mm/cma.h self-contained and conditionalize includes
Date: Sat, 15 Aug 2026 08:40:26 +0000 [thread overview]
Message-ID: <20260815084026.44078-1-eamon112009@gmail.com> (raw)
mm/cma.h uses types from <linux/spinlock.h>, <linux/mutex.h>,
<linux/atomic.h> and <linux/list.h> without explicitly including them,
violating the kernel header self-containment guidelines.
<linux/debugfs.h> and <linux/kobject.h> are also included unconditionally
even though they are only needed under CONFIG_CMA_DEBUGFS and
CONFIG_CMA_SYSFS respectively. Move the struct cma_kobject definition and
<linux/kobject.h> inside the CONFIG_CMA_SYSFS block, and move
<linux/debugfs.h> inside CONFIG_CMA_DEBUGFS.
Remove spurious trailing semicolons after the empty inline function bodies
in the CONFIG_CMA_SYSFS #else branch.
Add <linux/cma.h> so that MAX_CMA_AREAS and CMA_MAX_NAME are always
available when this header is included.
Signed-off-by: Eamon Sippy <eamon112009@gmail.com>
---
mm/cma.h | 24 ++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/mm/cma.h b/mm/cma.h
index c70180c36559..0a1cb0141756 100644
--- a/mm/cma.h
+++ b/mm/cma.h
@@ -2,13 +2,24 @@
#ifndef __MM_CMA_H__
#define __MM_CMA_H__
+#include <linux/atomic.h>
+#include <linux/cma.h>
+#include <linux/list.h>
+#include <linux/mutex.h>
+#include <linux/spinlock.h>
+
+#ifdef CONFIG_CMA_DEBUGFS
#include <linux/debugfs.h>
+#endif
+
+#ifdef CONFIG_CMA_SYSFS
#include <linux/kobject.h>
struct cma_kobject {
struct kobject kobj;
struct cma *cma;
};
+#endif
/*
* Multi-range support. This can be useful if the size of the allocation
@@ -37,10 +48,10 @@ struct cma_memrange {
#define CMA_MAX_RANGES 8
struct cma {
- unsigned long count;
- unsigned long available_count;
+ unsigned long count;
+ unsigned long available_count;
unsigned int order_per_bit; /* Order of pages represented by one bit */
- spinlock_t lock;
+ spinlock_t lock; /* protects allocation bitmap */
struct mutex alloc_mutex;
#ifdef CONFIG_CMA_DEBUGFS
struct hlist_head mem_head;
@@ -86,10 +97,11 @@ void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages);
void cma_sysfs_account_release_pages(struct cma *cma, unsigned long nr_pages);
#else
static inline void cma_sysfs_account_success_pages(struct cma *cma,
- unsigned long nr_pages) {};
+ unsigned long nr_pages) {}
static inline void cma_sysfs_account_fail_pages(struct cma *cma,
- unsigned long nr_pages) {};
+ unsigned long nr_pages) {}
static inline void cma_sysfs_account_release_pages(struct cma *cma,
- unsigned long nr_pages) {};
+ unsigned long nr_pages) {}
#endif
+
#endif
--
2.43.0
next reply other threads:[~2026-08-15 8:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-15 8:40 Eamon Sippy [this message]
2026-08-15 10:03 ` [PATCH] mm: cma: make mm/cma.h self-contained and conditionalize includes Barry Song
2026-08-15 10:32 ` [PATCH v2] " Eamon Sippy
2026-08-15 11:35 ` Barry Song
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260815084026.44078-1-eamon112009@gmail.com \
--to=eamon112009@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.