mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
riscv: mm: Define DIRECT_MAP_PHYSMEM_END
On RISC-V, the actual mappable range of physical address space is dependent on the current MMU mode i.e. satp_mode (See Documentation/arch/riscv/vm-layout.rst). Define the DIRECT_MAP_PHYSMEM_END macro based on the existing virtual address space layout macros to expose this information to get_free_mem_region(). Otherwise, it returns a region that couldn't be mapped, which breaks ZONE_DEVICE. Cc: stable@vger.kernel.org # v6.13+ Tested-by: Han Gao <gaohan@iscas.ac.cn> # SG2044 Signed-off-by: Vivian Wang <wangruikang@iscas.ac.cn> Link: https://patch.msgid.link/20260309-riscv-sparsemem-vmemmap-limits-v1-2-f40efe18e3cd@iscas.ac.cn Signed-off-by: Paul Walmsley <pjw@kernel.org>
This commit is contained in:
parent
dea5db8c57
commit
f3336b48cf
|
|
@ -93,6 +93,16 @@
|
|||
*/
|
||||
#define vmemmap ((struct page *)VMEMMAP_START - vmemmap_start_pfn)
|
||||
|
||||
/* Needed to limit get_free_mem_region() */
|
||||
#if defined(CONFIG_FLATMEM)
|
||||
#define DIRECT_MAP_PHYSMEM_END (phys_ram_base + KERN_VIRT_SIZE - 1)
|
||||
#elif defined(CONFIG_SPARSEMEM_VMEMMAP)
|
||||
#define DIRECT_MAP_PHYSMEM_END \
|
||||
((vmemmap_start_pfn + VMEMMAP_SIZE / sizeof(struct page)) * PAGE_SIZE - 1)
|
||||
#elif defined(CONFIG_SPARSEMEM)
|
||||
/* DIRECT_MAP_PHYSMEM_END is not limited by VA space assignment in this case */
|
||||
#endif
|
||||
|
||||
#define PCI_IO_SIZE SZ_16M
|
||||
#define PCI_IO_END VMEMMAP_START
|
||||
#define PCI_IO_START (PCI_IO_END - PCI_IO_SIZE)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user