From: "T.J. Mercier" <tjmercier@google.com>
To: Maxime Ripard <mripard@kernel.org>
Cc: "David Hildenbrand (Arm)" <david@kernel.org>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"Benjamin Gaignard" <benjamin.gaignard@collabora.com>,
"Brian Starkey" <Brian.Starkey@arm.com>,
"John Stultz" <jstultz@google.com>,
"Christian König" <christian.koenig@amd.com>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
"Robin Murphy" <robin.murphy@arm.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Lorenzo Stoakes" <lorenzo.stoakes@oracle.com>,
"Liam R. Howlett" <Liam.Howlett@oracle.com>,
"Vlastimil Babka" <vbabka@suse.cz>,
"Mike Rapoport" <rppt@kernel.org>,
"Suren Baghdasaryan" <surenb@google.com>,
"Michal Hocko" <mhocko@suse.com>,
linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org,
linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org,
iommu@lists.linux.dev, linux-mm@kvack.org
Subject: Re: [PATCH 2/7] mm: cma: Export cma_alloc and cma_release
Date: Thu, 26 Feb 2026 08:58:51 -0800 [thread overview]
Message-ID: <CABdmKX0KZLGaJWBoo3tkCxLvby3f4Fn0nMCLyz4a-H-9J_CtPQ@mail.gmail.com> (raw)
In-Reply-To: <20260226-impetuous-analytic-jellyfish-d4a86d@penduick>
On Thu, Feb 26, 2026 at 2:38 AM Maxime Ripard <mripard@kernel.org> wrote:
>
> Hi David,
>
> On Thu, Feb 26, 2026 at 11:25:24AM +0100, David Hildenbrand (Arm) wrote:
> > On 2/25/26 17:41, Maxime Ripard wrote:
> > > The CMA dma-buf heap uses cma_alloc() and cma_release() to allocate and
> > > free, respectively, its CMA buffers.
> > >
> > > However, these functions are not exported. Since we want to turn the CMA
> > > heap into a module, let's export them both.
> > >
> > > Signed-off-by: Maxime Ripard <mripard@kernel.org>
> > > ---
> > > mm/cma.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/mm/cma.c b/mm/cma.c
> > > index 94b5da468a7d719e5144d33b06bcc7619c0fbcc9..be142b473f3bd41b9c7d8ba4397f018f6993d962 100644
> > > --- a/mm/cma.c
> > > +++ b/mm/cma.c
> > > @@ -949,10 +949,11 @@ struct page *cma_alloc(struct cma *cma, unsigned long count,
> > > if (page)
> > > set_pages_refcounted(page, count);
> > >
> > > return page;
> > > }
> > > +EXPORT_SYMBOL_GPL(cma_alloc);
> > >
> > > static struct cma_memrange *find_cma_memrange(struct cma *cma,
> > > const struct page *pages, unsigned long count)
> > > {
> > > struct cma_memrange *cmr = NULL;
> > > @@ -1025,10 +1026,11 @@ bool cma_release(struct cma *cma, const struct page *pages,
> > >
> > > __cma_release_frozen(cma, cmr, pages, count);
> > >
> > > return true;
> > > }
> > > +EXPORT_SYMBOL_GPL(cma_release);
> > >
> > > bool cma_release_frozen(struct cma *cma, const struct page *pages,
> > > unsigned long count)
> > > {
> > > struct cma_memrange *cmr;
> > >
> >
> > I'm wondering whether we want to restrict all these exports to the
> > dma-buf module only using EXPORT_SYMBOL_FOR_MODULES().
>
> TIL about EXPORT_SYMBOL_FOR_MODULES, thanks.
Ohh, ditto.
> > Especially dma_contiguous_default_area() (patch #4), I am not sure
> > whether we want arbitrary modules to mess with that.
>
> Yeah, I wasn't too fond about that one either. Alternatively, I guess we
> could turn dev_get_cma_area into a non-inlined function and export that
> instead?
I checked the history to see if dev_get_cma_area was converted to
inline at some point for performance, but it has always been that way
since 3.5. That'd be my only worry with un-inlining and exporting it.
EXPORT_SYMBOL_FOR_MODULES sounds like a better way to me.
> Or we could do both.
>
> Maxime
next prev parent reply other threads:[~2026-02-26 16:59 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-25 16:41 [PATCH 0/7] dma-buf: heaps: Turn heaps into modules Maxime Ripard
2026-02-25 16:41 ` [PATCH 1/7] dma: contiguous: Turn heap registration logic around Maxime Ripard
2026-02-25 19:32 ` T.J. Mercier
2026-02-25 16:41 ` [PATCH 2/7] mm: cma: Export cma_alloc and cma_release Maxime Ripard
2026-02-25 19:34 ` T.J. Mercier
2026-02-26 10:25 ` David Hildenbrand (Arm)
2026-02-26 10:38 ` Maxime Ripard
2026-02-26 10:49 ` David Hildenbrand (Arm)
2026-02-26 16:58 ` T.J. Mercier [this message]
2026-02-25 16:41 ` [PATCH 3/7] mm: cma: Export cma_get_name Maxime Ripard
2026-02-25 19:34 ` T.J. Mercier
2026-02-25 16:41 ` [PATCH 4/7] mm: cma: Export dma_contiguous_default_area Maxime Ripard
2026-02-25 19:52 ` T.J. Mercier
2026-02-25 16:41 ` [PATCH 5/7] dma-buf: heaps: Export mem_accounting parameter Maxime Ripard
2026-02-25 19:53 ` T.J. Mercier
2026-02-25 16:41 ` [PATCH 6/7] dma-buf: heaps: cma: Turn the heap into a module Maxime Ripard
2026-02-25 19:54 ` T.J. Mercier
2026-02-25 16:41 ` [PATCH 7/7] dma-buf: heaps: system: " Maxime Ripard
2026-02-25 19:55 ` T.J. Mercier
2026-02-25 18:51 ` [PATCH 0/7] dma-buf: heaps: Turn heaps into modules John Stultz
2026-02-26 10:18 ` Maxime Ripard
2026-02-26 18:03 ` John Stultz
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=CABdmKX0KZLGaJWBoo3tkCxLvby3f4Fn0nMCLyz4a-H-9J_CtPQ@mail.gmail.com \
--to=tjmercier@google.com \
--cc=Brian.Starkey@arm.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=benjamin.gaignard@collabora.com \
--cc=christian.koenig@amd.com \
--cc=david@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=iommu@lists.linux.dev \
--cc=jstultz@google.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=m.szyprowski@samsung.com \
--cc=mhocko@suse.com \
--cc=mripard@kernel.org \
--cc=robin.murphy@arm.com \
--cc=rppt@kernel.org \
--cc=sumit.semwal@linaro.org \
--cc=surenb@google.com \
--cc=vbabka@suse.cz \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox