riscv: Fix ptdump when KASAN is enabled
The KASAN shadow region was moved next to the kernel mapping but the
ptdump code was not updated and it appears to break the dump of the kernel
page table, so fix this by moving the KASAN shadow region in ptdump.
Fixes: f7ae02333d
("riscv: Move KASAN mapping next to the kernel mapping")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Tested-by: Björn Töpel <bjorn@rivosinc.com>
Reviewed-by: Björn Töpel <bjorn@rivosinc.com>
Link: https://lore.kernel.org/r/20230203075232.274282-6-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
617955ca6e
commit
ecd7ebaf0b
|
@ -59,10 +59,6 @@ struct ptd_mm_info {
|
|||
};
|
||||
|
||||
enum address_markers_idx {
|
||||
#ifdef CONFIG_KASAN
|
||||
KASAN_SHADOW_START_NR,
|
||||
KASAN_SHADOW_END_NR,
|
||||
#endif
|
||||
FIXMAP_START_NR,
|
||||
FIXMAP_END_NR,
|
||||
PCI_IO_START_NR,
|
||||
|
@ -74,6 +70,10 @@ enum address_markers_idx {
|
|||
VMALLOC_START_NR,
|
||||
VMALLOC_END_NR,
|
||||
PAGE_OFFSET_NR,
|
||||
#ifdef CONFIG_KASAN
|
||||
KASAN_SHADOW_START_NR,
|
||||
KASAN_SHADOW_END_NR,
|
||||
#endif
|
||||
#ifdef CONFIG_64BIT
|
||||
MODULES_MAPPING_NR,
|
||||
KERNEL_MAPPING_NR,
|
||||
|
@ -82,10 +82,6 @@ enum address_markers_idx {
|
|||
};
|
||||
|
||||
static struct addr_marker address_markers[] = {
|
||||
#ifdef CONFIG_KASAN
|
||||
{0, "Kasan shadow start"},
|
||||
{0, "Kasan shadow end"},
|
||||
#endif
|
||||
{0, "Fixmap start"},
|
||||
{0, "Fixmap end"},
|
||||
{0, "PCI I/O start"},
|
||||
|
@ -97,6 +93,10 @@ static struct addr_marker address_markers[] = {
|
|||
{0, "vmalloc() area"},
|
||||
{0, "vmalloc() end"},
|
||||
{0, "Linear mapping"},
|
||||
#ifdef CONFIG_KASAN
|
||||
{0, "Kasan shadow start"},
|
||||
{0, "Kasan shadow end"},
|
||||
#endif
|
||||
#ifdef CONFIG_64BIT
|
||||
{0, "Modules/BPF mapping"},
|
||||
{0, "Kernel mapping"},
|
||||
|
@ -362,10 +362,6 @@ static int __init ptdump_init(void)
|
|||
{
|
||||
unsigned int i, j;
|
||||
|
||||
#ifdef CONFIG_KASAN
|
||||
address_markers[KASAN_SHADOW_START_NR].start_address = KASAN_SHADOW_START;
|
||||
address_markers[KASAN_SHADOW_END_NR].start_address = KASAN_SHADOW_END;
|
||||
#endif
|
||||
address_markers[FIXMAP_START_NR].start_address = FIXADDR_START;
|
||||
address_markers[FIXMAP_END_NR].start_address = FIXADDR_TOP;
|
||||
address_markers[PCI_IO_START_NR].start_address = PCI_IO_START;
|
||||
|
@ -377,6 +373,10 @@ static int __init ptdump_init(void)
|
|||
address_markers[VMALLOC_START_NR].start_address = VMALLOC_START;
|
||||
address_markers[VMALLOC_END_NR].start_address = VMALLOC_END;
|
||||
address_markers[PAGE_OFFSET_NR].start_address = PAGE_OFFSET;
|
||||
#ifdef CONFIG_KASAN
|
||||
address_markers[KASAN_SHADOW_START_NR].start_address = KASAN_SHADOW_START;
|
||||
address_markers[KASAN_SHADOW_END_NR].start_address = KASAN_SHADOW_END;
|
||||
#endif
|
||||
#ifdef CONFIG_64BIT
|
||||
address_markers[MODULES_MAPPING_NR].start_address = MODULES_VADDR;
|
||||
address_markers[KERNEL_MAPPING_NR].start_address = kernel_map.virt_addr;
|
||||
|
|
Loading…
Reference in New Issue