drivers/memory/tegra/tegra210-emc-table.c | 19 +- drivers/of/fdt.c | 2 +- drivers/of/of_private.h | 2 +- drivers/of/of_reserved_mem.c | 320 +++++++++++++--------- include/linux/cma.h | 10 - include/linux/dma-map-ops.h | 3 - include/linux/of_reserved_mem.h | 16 +- kernel/dma/coherent.c | 19 +- kernel/dma/contiguous.c | 86 ++++-- kernel/dma/swiotlb.c | 19 +- 10 files changed, 285 insertions(+), 211 deletions(-)
Hello,
The reserved memory regions handling code was reworked to handle
unlimited so called "static" memory nodes in commit 00c9a452a235 ("of:
reserved_mem: Add code to dynamically allocate reserved_mem array").
The side effect of this rework was a set of bugs fixed later by commits
0fd17e598333 ("of: reserved_mem: Allow reserved_mem framework detect
"cma=" kernel param") and 2c223f7239f3 ("of: reserved_mem: Restructure
call site for dma_contiguous_early_fixup()"). As a result, the code in
drivers/of/of_reserved_mem.c became a mix of generic code and CMA
specific fixups.
In this patchset I try to untangle this spaghetti and perform some code
cleanup. I hope nothing breaks this time.
Best regards
Marek Szyprowski, PhD
Samsung R&D Institute Poland
Changelog:
v3:
- fixed more issues pointed by Sashiko in
https://sashiko.dev/#/patchset/20260323100901.4079171-1-m.szyprowski@samsung.com
(restored use of _OF_DECLARE macro, extended some comments and commit
descriptions, the remaining items I consider not relevant)
v2: https://lore.kernel.org/all/20260323100901.4079171-1-m.szyprowski@samsung.com/
- added missing ops assignment removal in tegra210-emc-table and swiotlb
drivers
- fixed issues pointed by kernel test robot and Sashiko: removed typos,
improved comments
- fixed incorrect node passed to fdt_validate_reserved_mem_node() in
fdt_scan_reserved_mem_reg_nodes()
v1: https://lore.kernel.org/all/20260313150802.1121442-1-m.szyprowski@samsung.com/
- initial version
Patch summary:
Marek Szyprowski (7):
of: reserved_mem: remove fdt node from the structure
of: reserved_mem: use -ENODEV instead of -ENOENT
of: reserved_mem: switch to ops based OF_DECLARE()
of: reserved_mem: replace CMA quirks by generic methods
of: reserved_mem: rearrange code a bit
of: reserved_mem: clarify fdt_scan_reserved_mem*() functions
of: reserved_mem: rework fdt_init_reserved_mem_node()
drivers/memory/tegra/tegra210-emc-table.c | 19 +-
drivers/of/fdt.c | 2 +-
drivers/of/of_private.h | 2 +-
drivers/of/of_reserved_mem.c | 320 +++++++++++++---------
include/linux/cma.h | 10 -
include/linux/dma-map-ops.h | 3 -
include/linux/of_reserved_mem.h | 16 +-
kernel/dma/coherent.c | 19 +-
kernel/dma/contiguous.c | 86 ++++--
kernel/dma/swiotlb.c | 19 +-
10 files changed, 285 insertions(+), 211 deletions(-)
--
2.34.1
On Wed, Mar 25, 2026 at 10:00:16AM +0100, Marek Szyprowski wrote:
> Hello,
>
> The reserved memory regions handling code was reworked to handle
> unlimited so called "static" memory nodes in commit 00c9a452a235 ("of:
> reserved_mem: Add code to dynamically allocate reserved_mem array").
>
> The side effect of this rework was a set of bugs fixed later by commits
> 0fd17e598333 ("of: reserved_mem: Allow reserved_mem framework detect
> "cma=" kernel param") and 2c223f7239f3 ("of: reserved_mem: Restructure
> call site for dma_contiguous_early_fixup()"). As a result, the code in
> drivers/of/of_reserved_mem.c became a mix of generic code and CMA
> specific fixups.
>
> In this patchset I try to untangle this spaghetti and perform some code
> cleanup. I hope nothing breaks this time.
>
> Best regards
> Marek Szyprowski, PhD
> Samsung R&D Institute Poland
>
>
> Changelog:
>
> v3:
> - fixed more issues pointed by Sashiko in
> https://sashiko.dev/#/patchset/20260323100901.4079171-1-m.szyprowski@samsung.com
> (restored use of _OF_DECLARE macro, extended some comments and commit
> descriptions, the remaining items I consider not relevant)
>
> v2: https://lore.kernel.org/all/20260323100901.4079171-1-m.szyprowski@samsung.com/
> - added missing ops assignment removal in tegra210-emc-table and swiotlb
> drivers
> - fixed issues pointed by kernel test robot and Sashiko: removed typos,
> improved comments
> - fixed incorrect node passed to fdt_validate_reserved_mem_node() in
> fdt_scan_reserved_mem_reg_nodes()
>
> v1: https://lore.kernel.org/all/20260313150802.1121442-1-m.szyprowski@samsung.com/
> - initial version
>
>
> Patch summary:
>
> Marek Szyprowski (7):
> of: reserved_mem: remove fdt node from the structure
> of: reserved_mem: use -ENODEV instead of -ENOENT
> of: reserved_mem: switch to ops based OF_DECLARE()
> of: reserved_mem: replace CMA quirks by generic methods
> of: reserved_mem: rearrange code a bit
> of: reserved_mem: clarify fdt_scan_reserved_mem*() functions
> of: reserved_mem: rework fdt_init_reserved_mem_node()
I've applied the series, thanks!
Rob
Hi Rob
On 25.03.2026 15:16, Rob Herring wrote:
> On Wed, Mar 25, 2026 at 10:00:16AM +0100, Marek Szyprowski wrote:
>> The reserved memory regions handling code was reworked to handle
>> unlimited so called "static" memory nodes in commit 00c9a452a235 ("of:
>> reserved_mem: Add code to dynamically allocate reserved_mem array").
>>
>> The side effect of this rework was a set of bugs fixed later by commits
>> 0fd17e598333 ("of: reserved_mem: Allow reserved_mem framework detect
>> "cma=" kernel param") and 2c223f7239f3 ("of: reserved_mem: Restructure
>> call site for dma_contiguous_early_fixup()"). As a result, the code in
>> drivers/of/of_reserved_mem.c became a mix of generic code and CMA
>> specific fixups.
>>
>> In this patchset I try to untangle this spaghetti and perform some code
>> cleanup. I hope nothing breaks this time.
>>
>> Best regards
>> Marek Szyprowski, PhD
>> Samsung R&D Institute Poland
>>
>>
>> Changelog:
>>
>> v3:
>> - fixed more issues pointed by Sashiko in
>> https://protect2.fireeye.com/v1/url?k=c0975fdb-a11c4aed-c096d494-74fe485cbff1-5d0a8d4ece172e7b&q=1&e=abd3a151-11c5-430e-a6ac-b04cc3b34ab7&u=https%3A%2F%2Fsashiko.dev%2F%23%2Fpatchset%2F20260323100901.4079171-1-m.szyprowski%40samsung.com
>> (restored use of _OF_DECLARE macro, extended some comments and commit
>> descriptions, the remaining items I consider not relevant)
>>
>> v2: https://lore.kernel.org/all/20260323100901.4079171-1-m.szyprowski@samsung.com/
>> - added missing ops assignment removal in tegra210-emc-table and swiotlb
>> drivers
>> - fixed issues pointed by kernel test robot and Sashiko: removed typos,
>> improved comments
>> - fixed incorrect node passed to fdt_validate_reserved_mem_node() in
>> fdt_scan_reserved_mem_reg_nodes()
>>
>> v1: https://lore.kernel.org/all/20260313150802.1121442-1-m.szyprowski@samsung.com/
>> - initial version
>>
>>
>> Patch summary:
>>
>> Marek Szyprowski (7):
>> of: reserved_mem: remove fdt node from the structure
>> of: reserved_mem: use -ENODEV instead of -ENOENT
>> of: reserved_mem: switch to ops based OF_DECLARE()
>> of: reserved_mem: replace CMA quirks by generic methods
>> of: reserved_mem: rearrange code a bit
>> of: reserved_mem: clarify fdt_scan_reserved_mem*() functions
>> of: reserved_mem: rework fdt_init_reserved_mem_node()
> I've applied the series, thanks!
I forgot to mention this earlier. There are other pending changes
tokernel/dma/contiguous.c like
https://lore.kernel.org/all/20260303-dma-buf-heaps-as-modules-v3-0-24344812c707@kernel.org/
which I would like to merge to -next. This conflicts with this patchset.
Could You provide a stable branch with those changes to let me resolve
conflicts in kernel/dma/contiguous.c on top of it?
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
On Thu, Mar 26, 2026 at 4:58 AM Marek Szyprowski
<m.szyprowski@samsung.com> wrote:
>
> Hi Rob
>
> On 25.03.2026 15:16, Rob Herring wrote:
> > On Wed, Mar 25, 2026 at 10:00:16AM +0100, Marek Szyprowski wrote:
> >> The reserved memory regions handling code was reworked to handle
> >> unlimited so called "static" memory nodes in commit 00c9a452a235 ("of:
> >> reserved_mem: Add code to dynamically allocate reserved_mem array").
> >>
> >> The side effect of this rework was a set of bugs fixed later by commits
> >> 0fd17e598333 ("of: reserved_mem: Allow reserved_mem framework detect
> >> "cma=" kernel param") and 2c223f7239f3 ("of: reserved_mem: Restructure
> >> call site for dma_contiguous_early_fixup()"). As a result, the code in
> >> drivers/of/of_reserved_mem.c became a mix of generic code and CMA
> >> specific fixups.
> >>
> >> In this patchset I try to untangle this spaghetti and perform some code
> >> cleanup. I hope nothing breaks this time.
> >>
> >> Best regards
> >> Marek Szyprowski, PhD
> >> Samsung R&D Institute Poland
> >>
> >>
> >> Changelog:
> >>
> >> v3:
> >> - fixed more issues pointed by Sashiko in
> >> https://protect2.fireeye.com/v1/url?k=c0975fdb-a11c4aed-c096d494-74fe485cbff1-5d0a8d4ece172e7b&q=1&e=abd3a151-11c5-430e-a6ac-b04cc3b34ab7&u=https%3A%2F%2Fsashiko.dev%2F%23%2Fpatchset%2F20260323100901.4079171-1-m.szyprowski%40samsung.com
> >> (restored use of _OF_DECLARE macro, extended some comments and commit
> >> descriptions, the remaining items I consider not relevant)
> >>
> >> v2: https://lore.kernel.org/all/20260323100901.4079171-1-m.szyprowski@samsung.com/
> >> - added missing ops assignment removal in tegra210-emc-table and swiotlb
> >> drivers
> >> - fixed issues pointed by kernel test robot and Sashiko: removed typos,
> >> improved comments
> >> - fixed incorrect node passed to fdt_validate_reserved_mem_node() in
> >> fdt_scan_reserved_mem_reg_nodes()
> >>
> >> v1: https://lore.kernel.org/all/20260313150802.1121442-1-m.szyprowski@samsung.com/
> >> - initial version
> >>
> >>
> >> Patch summary:
> >>
> >> Marek Szyprowski (7):
> >> of: reserved_mem: remove fdt node from the structure
> >> of: reserved_mem: use -ENODEV instead of -ENOENT
> >> of: reserved_mem: switch to ops based OF_DECLARE()
> >> of: reserved_mem: replace CMA quirks by generic methods
> >> of: reserved_mem: rearrange code a bit
> >> of: reserved_mem: clarify fdt_scan_reserved_mem*() functions
> >> of: reserved_mem: rework fdt_init_reserved_mem_node()
> > I've applied the series, thanks!
>
> I forgot to mention this earlier. There are other pending changes
> tokernel/dma/contiguous.c like
> https://lore.kernel.org/all/20260303-dma-buf-heaps-as-modules-v3-0-24344812c707@kernel.org/
> which I would like to merge to -next. This conflicts with this patchset.
> Could You provide a stable branch with those changes to let me resolve
> conflicts in kernel/dma/contiguous.c on top of it?
Here you go:
The following changes since commit 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f:
Linux 7.0-rc1 (2026-02-22 13:18:59 -0800)
are available in the Git repository at:
ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/robh/linux.git
dt-reserved-mem-cleanups
for you to fetch changes up to 34e0e2a8ea9e9e4f4dceb33072103dffaa1366b3:
of: reserved_mem: rework fdt_init_reserved_mem_node() (2026-03-26
14:12:02 -0500)
----------------------------------------------------------------
Marek Szyprowski (7):
of: reserved_mem: remove fdt node from the structure
of: reserved_mem: use -ENODEV instead of -ENOENT
of: reserved_mem: switch to ops based OF_DECLARE()
of: reserved_mem: replace CMA quirks by generic methods
of: reserved_mem: rearrange code a bit
of: reserved_mem: clarify fdt_scan_reserved_mem*() functions
of: reserved_mem: rework fdt_init_reserved_mem_node()
drivers/memory/tegra/tegra210-emc-table.c | 19 +++++-----
drivers/of/fdt.c | 2 +-
drivers/of/of_private.h | 2 +-
drivers/of/of_reserved_mem.c | 320
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------
include/linux/cma.h | 10 ------
include/linux/dma-map-ops.h | 3 --
include/linux/of_reserved_mem.h | 16 +++++----
kernel/dma/coherent.c | 19 +++++-----
kernel/dma/contiguous.c | 86
+++++++++++++++++++++++++++++++--------------
kernel/dma/swiotlb.c | 19 +++++-----
10 files changed, 285 insertions(+), 211 deletions(-)
© 2016 - 2026 Red Hat, Inc.