Pull memblock fix from Mike Rapoport: "Fix crash when reserved memory is not added to memory. When CONFIG_DEFERRED_STRUCT_PAGE_INIT is enabled, the initialization of reserved pages may cause access of NODE_DATA() with invalid nid and crash. Add a fall back to early_pfn_to_nid() in memmap_init_reserved_pages() to ensure a valid node id is always passed to init_reserved_page()" * tag 'fixes-2024-01-28' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock: memblock: fix crash when reserved memory is not added to memory
Unified · Split
| @@ -2176,6 +2176,9 @@ static void __init memmap_init_reserved_pages(void) · 2175 unmodified lines | ||
| 2176 | 2176 | start = region->base; |
| 2177 | 2177 | end = start + region->size; |
| 2178 | 2178 | |
| 2179 | + if (nid == NUMA_NO_NODE || nid >= MAX_NUMNODES) | |
| 2180 | + nid = early_pfn_to_nid(PFN_DOWN(start)); | |
| 2181 | + | |
| 2179 | 2182 | reserve_bootmem_region(start, end, nid); |
| 2180 | 2183 | } |
| 2181 | 2184 | } |