Hey Alex, On Wed, Jan 25, 2023 at 09:23:30AM +0100, Alexandre Ghiti wrote: > The early virtual address should lie in the kernel address space for > inline kasan instrumentation to succeed, otherwise kasan tries to > dereference an address that does not exist in the address space (since > kasan only maps *kernel* address space, not the userspace). > > Simply use the very first address of the kernel address space for the > early fdt mapping. > > It allowed an Ubuntu kernel to boot successfully with inline > instrumentation. > > Signed-off-by: Alexandre Ghiti <alexghiti@xxxxxxxxxxxx> Been poking around in this area the last few days trying to hunt down some bugs... Things look functionally the same w/ this patch and we do get rid of the odd looking pointer which is nice. Reviewed-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx> Probably would've made the cause of 50e63dd8ed92 ("riscv: fix reserved memory setup") more difficult to find so glad I got that out of the way well before this patch! Thanks, Conor. > --- > arch/riscv/mm/init.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c > index 478d6763a01a..87f6a5d475a6 100644 > --- a/arch/riscv/mm/init.c > +++ b/arch/riscv/mm/init.c > @@ -57,7 +57,7 @@ unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)] > EXPORT_SYMBOL(empty_zero_page); > > extern char _start[]; > -#define DTB_EARLY_BASE_VA PGDIR_SIZE > +#define DTB_EARLY_BASE_VA (ADDRESS_SPACE_END - (PTRS_PER_PGD / 2 * PGDIR_SIZE) + 1) > void *_dtb_early_va __initdata; > uintptr_t _dtb_early_pa __initdata; > > -- > 2.37.2 > >
Attachment:
signature.asc
Description: PGP signature