[PATCH 0/7] Refactor reserved memory regions handling code

Marek Szyprowski posted 7 patches 3 weeks, 3 days ago
There is a newer version of this series
drivers/memory/tegra/tegra210-emc-table.c |  17 +-
drivers/of/fdt.c                          |   2 +-
drivers/of/of_private.h                   |   2 +-
drivers/of/of_reserved_mem.c              | 289 ++++++++++++----------
include/linux/cma.h                       |  10 -
include/linux/dma-map-ops.h               |   3 -
include/linux/of_reserved_mem.h           |  18 +-
kernel/dma/coherent.c                     |  19 +-
kernel/dma/contiguous.c                   |  86 +++++--
kernel/dma/swiotlb.c                      |  18 +-
10 files changed, 256 insertions(+), 208 deletions(-)
[PATCH 0/7] Refactor reserved memory regions handling code
Posted by Marek Szyprowski 3 weeks, 3 days ago
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

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 |  17 +-
 drivers/of/fdt.c                          |   2 +-
 drivers/of/of_private.h                   |   2 +-
 drivers/of/of_reserved_mem.c              | 289 ++++++++++++----------
 include/linux/cma.h                       |  10 -
 include/linux/dma-map-ops.h               |   3 -
 include/linux/of_reserved_mem.h           |  18 +-
 kernel/dma/coherent.c                     |  19 +-
 kernel/dma/contiguous.c                   |  86 +++++--
 kernel/dma/swiotlb.c                      |  18 +-
 10 files changed, 256 insertions(+), 208 deletions(-)

-- 
2.34.1
Re: [PATCH 0/7] Refactor reserved memory regions handling code
Posted by Rob Herring 2 weeks, 1 day ago
On Fri, Mar 13, 2026 at 04:07:55PM +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.

This all looks good to me. Can you respin and fixup the issues.

Rob