[PATCH v2 0/5] of: reserved_mem: several fixes about reserved memory
Wandun Chen <[email protected]>
| Newsgroups | org.kvack.linux-mm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Wandun Chen <[email protected]> This series fixes several error-handling issues in the reserved-memory initialization paths. Static reserved-memory nodes are reserved during the early DT scan but initialized later. The first patch prevents a node whose early reservation failed from reaching the late initialization path. The following two patches reject overlapping static regions. Without these checks, overlapping nodes can be initialized over the same physical memory, result in data corrupt. The last two patches fix cleanup of no-map regions after driver. Sashiko reported these issues in [1] [2] [3]. [1] https://sashiko.dev/#/message/20260814090305.4C8741F00A3D%40smtp.kernel.org [2] https://sashiko.dev/#/message/20260814084718.29C341F000E9%40smtp.kernel.org [3] https://sashiko.dev/#/message/20260806100605.2C2C01F000E9%40smtp.kernel.org v1 --> v2: 1. Rework failed-node tracking in patch 1: do not track zero-sized nodes, and keep a reserved_mem slot when tracking overflows. 2. Reject static reserved regions overlapping existing no-map regions. 3. Keep MEMBLOCK_NOMAP flag for static no-map regions when init failure. Wandun Chen (5): of: reserved_mem: skip init for regions whose early reservation failed of: reserved_mem: reject static regions overlapping no-map memory of: reserved_mem: reject statically placed regions overlapping existing reservations of: reserved_mem: release dynamically allocated no-map region on init failure of: reserved_mem: retain static no-map memory on init failure drivers/of/of_reserved_mem.c | 87 +++++++++++++++++++++++++++++------- include/linux/memblock.h | 1 + mm/memblock.c | 14 ++++++ 3 files changed, 85 insertions(+), 17 deletions(-) -- 2.43.0