Commit 7d19ea5e authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'riscv-for-linus-5.12-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux

Pull more RISC-V updates from Palmer Dabbelt:
 "A pair of patches that slipped through the cracks:

   - enable CPU hotplug in the defconfigs

   - some cleanups to setup_bootmem

  There's also a single fix for some randconfig build failures:

   - make NUMA depend on SMP"

* tag 'riscv-for-linus-5.12-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
  riscv: Cleanup setup_bootmem()
  RISC-V: Enable CPU Hotplug in defconfigs
  RISC-V: Make NUMA depend on SMP
parents 0b311e34 dd2d082b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -314,6 +314,7 @@ endchoice
# Common NUMA Features
config NUMA
	bool "NUMA Memory Allocation and Scheduler Support"
	depends on SMP
	select GENERIC_ARCH_NUMA
	select OF_NUMA
	select ARCH_SUPPORTS_NUMA_BALANCING
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ CONFIG_BPF_SYSCALL=y
CONFIG_SOC_SIFIVE=y
CONFIG_SOC_VIRT=y
CONFIG_SMP=y
CONFIG_HOTPLUG_CPU=y
CONFIG_JUMP_LABEL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ CONFIG_SOC_SIFIVE=y
CONFIG_SOC_VIRT=y
CONFIG_ARCH_RV32I=y
CONFIG_SMP=y
CONFIG_HOTPLUG_CPU=y
CONFIG_JUMP_LABEL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+2 −19
Original line number Diff line number Diff line
@@ -108,34 +108,17 @@ void __init mem_init(void)

void __init setup_bootmem(void)
{
	phys_addr_t mem_start = 0;
	phys_addr_t start, dram_end, end = 0;
	phys_addr_t vmlinux_end = __pa_symbol(&_end);
	phys_addr_t vmlinux_start = __pa_symbol(&_start);
	phys_addr_t dram_end = memblock_end_of_DRAM();
	phys_addr_t max_mapped_addr = __pa(~(ulong)0);
	u64 i;

	/* Find the memory region containing the kernel */
	for_each_mem_range(i, &start, &end) {
		phys_addr_t size = end - start;
		if (!mem_start)
			mem_start = start;
		if (start <= vmlinux_start && vmlinux_end <= end)
			BUG_ON(size == 0);
	}

	/*
	 * The maximal physical memory size is -PAGE_OFFSET.
	 * Make sure that any memory beyond mem_start + (-PAGE_OFFSET) is removed
	 * as it is unusable by kernel.
	 */
	/* The maximal physical memory size is -PAGE_OFFSET. */
	memblock_enforce_memory_limit(-PAGE_OFFSET);

	/* Reserve from the start of the kernel to the end of the kernel */
	memblock_reserve(vmlinux_start, vmlinux_end - vmlinux_start);

	dram_end = memblock_end_of_DRAM();

	/*
	 * memblock allocator is not aware of the fact that last 4K bytes of
	 * the addressable memory can not be mapped because of IS_ERR_VALUE