Re: [PATCH] of: reserved_mem: Allow reserved_mem framework detect "cma=" kernel param

From: Marek Szyprowski

Date: Tue Jan 27 2026 - 10:22:45 EST


On 26.01.2026 17:33, Rob Herring wrote:
> On Mon, Jan 19, 2026 at 4:38 AM Marek Szyprowski
> <m.szyprowski@xxxxxxxxxxx> wrote:
>> On 18.12.2025 15:42, Rob Herring wrote:
>>> On Thu, Dec 18, 2025 at 3:55 AM Marek Szyprowski
>>> <m.szyprowski@xxxxxxxxxxx> wrote:
>>>> On 10.12.2025 15:07, Rob Herring wrote:
>>>>> On Tue, Dec 9, 2025 at 6:20 PM Oreoluwa Babatunde
>>>>> <oreoluwa.babatunde@xxxxxxxxxxxxxxxx> wrote:
>>>>>> When initializing the default cma region, the "cma=" kernel parameter
>>>>>> takes priority over a DT defined linux,cma-default region. Hence, give
>>>>>> the reserved_mem framework the ability to detect this so that the DT
>>>>>> defined cma region can skip initialization accordingly.
>>>>> Please explain here why this is a new problem. Presumably the
>>>>> RESERVEDMEM_OF_DECLARE hook after commit xxxx gets called before the
>>>>> early_param hook. And why is it now earlier?
>>>>>
>>>>> I don't really like the state/ordering having to be worried about in 2 places.
>>>> I also don't like this spaghetti, but it originates from
>>>> commit 8a6e02d0c00e ("of: reserved_mem: Restructure how the reserved
>>>> memory regions are processed") and the first fixup for it: 2c223f7239f3
>>>> ("of: reserved_mem: Restructure call site for
>>>> dma_contiguous_early_fixup()").
>>> Honestly, this code wasn't great before. Every time it is touched it
>>> breaks someone.
>> Indeed it got a bit complicated and needs some improvement, but first I
>> want to fix the the reported regression. This patch does this and it
>> looks that there are no ideas how to fix this in a different way. Rob,
>> could I apply it via dma-mapping-fixes?
> Sigh, yes.
>
> Acked-by: Rob Herring (Arm) <robh@xxxxxxxxxx>

Thanks! It's very late in this kernel rc cycle, but I will try to merge
it to v6.19, as this issue is really a problem on some systems, see
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1116251

I've rebased this patch onto v6.19-rc1, fixed the build break reported
by kernel test robot by adding a stub for
cma_skip_dt_default_reserved_mem() if no CONFIG_DMA_CMA is set and added
following fixes tags:

Fixes: 8a6e02d0c00e ("of: reserved_mem: Restructure how the reserved
memory regions are processed")
Fixes: 2c223f7239f3 ("of: reserved_mem: Restructure call site for
dma_contiguous_early_fixup()")

With the above mentioned changes I've applied it to my
dma-mappping-fixes branch. Let's give it a day or two in the linux-next
for tests and, if nothing explodes, I will send it at the last minute
for the merge.

I will try to untangle this spaghetti a bit and cleanup the code in the
next release cycle.

Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland