diff options
| author | Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> | 2023-08-01 10:14:46 +0530 |
|---|---|---|
| committer | Michael Ellerman <mpe@ellerman.id.au> | 2023-08-18 17:03:15 +1000 |
| commit | 4d15721177d539d743fcf31d7bb376fb3b81aeb6 (patch) | |
| tree | d5ae72d4d84964a6515b2bc0237f03e597224713 /arch/powerpc/platforms/powernv | |
| parent | 455d3d38ef9d5f69c504d1af5fa2359563ea4148 (diff) | |
| download | linux-4d15721177d539d743fcf31d7bb376fb3b81aeb6.tar.gz linux-4d15721177d539d743fcf31d7bb376fb3b81aeb6.tar.bz2 linux-4d15721177d539d743fcf31d7bb376fb3b81aeb6.zip | |
powerpc/mm: Cleanup memory block size probing
Parse the device tree in early init to find the memory block size to be
used by the kernel. Consolidate the memory block size device tree parsing
to one helper and use that on both powernv and pseries. We still want to
use machine-specific callback because on all machine types other than
powernv and pseries we continue to return MIN_MEMORY_BLOCK_SIZE.
pseries_memory_block_size used to look for the second memory
block (memory@x) to determine the memory_block_size value. This patch
changed that to look at all memory blocks and make sure we can map them all
correctly using the computed memory block size value.
Add workaround to force 256MB memory block size if device driver managed
memory such as GPU memory is present. This helps to add GPU memory
that is not aligned to 1G.
Co-developed-by: Reza Arbab <arbab@linux.ibm.com>
Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
Signed-off-by: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230801044447.11275-1-aneesh.kumar@linux.ibm.com
Diffstat (limited to 'arch/powerpc/platforms/powernv')
| -rw-r--r-- | arch/powerpc/platforms/powernv/setup.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c index 5e9c6b55809f..4dbb47ddbdcc 100644 --- a/arch/powerpc/platforms/powernv/setup.c +++ b/arch/powerpc/platforms/powernv/setup.c @@ -482,15 +482,7 @@ static void pnv_kexec_cpu_down(int crash_shutdown, int secondary) #ifdef CONFIG_MEMORY_HOTPLUG static unsigned long pnv_memory_block_size(void) { - /* - * We map the kernel linear region with 1GB large pages on radix. For - * memory hot unplug to work our memory block size must be at least - * this size. - */ - if (radix_enabled()) - return radix_mem_block_size; - else - return 256UL * 1024 * 1024; + return memory_block_size; } #endif |
