lkml.org 
[lkml]   [2019]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v16 18/25] x86: mm+efi: Convert ptdump_walk_pgd_level() to take a mm_struct
    Date
    To enable x86 to use the generic walk_page_range() function, the
    callers of ptdump_walk_pgd_level() need to pass an mm_struct rather
    than the raw pgd_t pointer. Luckily since commit 7e904a91bf60
    ("efi: Use efi_mm in x86 as well as ARM") we now have an mm_struct
    for EFI on x86.

    Signed-off-by: Steven Price <steven.price@arm.com>
    ---
    arch/x86/include/asm/pgtable.h | 2 +-
    arch/x86/mm/dump_pagetables.c | 4 ++--
    arch/x86/platform/efi/efi_32.c | 2 +-
    arch/x86/platform/efi/efi_64.c | 4 ++--
    4 files changed, 6 insertions(+), 6 deletions(-)

    diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
    index 8091a1c62596..5a30bf58156e 100644
    --- a/arch/x86/include/asm/pgtable.h
    +++ b/arch/x86/include/asm/pgtable.h
    @@ -29,7 +29,7 @@
    extern pgd_t early_top_pgt[PTRS_PER_PGD];
    int __init __early_make_pgtable(unsigned long address, pmdval_t pmd);

    -void ptdump_walk_pgd_level(struct seq_file *m, pgd_t *pgd);
    +void ptdump_walk_pgd_level(struct seq_file *m, struct mm_struct *mm);
    void ptdump_walk_pgd_level_debugfs(struct seq_file *m, pgd_t *pgd, bool user);
    void ptdump_walk_pgd_level_checkwx(void);
    void ptdump_walk_user_pgd_level_checkwx(void);
    diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
    index 4dc6f4df40af..24fe76325b31 100644
    --- a/arch/x86/mm/dump_pagetables.c
    +++ b/arch/x86/mm/dump_pagetables.c
    @@ -567,9 +567,9 @@ static void ptdump_walk_pgd_level_core(struct seq_file *m, pgd_t *pgd,
    pr_info("x86/mm: Checked W+X mappings: passed, no W+X pages found.\n");
    }

    -void ptdump_walk_pgd_level(struct seq_file *m, pgd_t *pgd)
    +void ptdump_walk_pgd_level(struct seq_file *m, struct mm_struct *mm)
    {
    - ptdump_walk_pgd_level_core(m, pgd, false, true);
    + ptdump_walk_pgd_level_core(m, mm->pgd, false, true);
    }

    void ptdump_walk_pgd_level_debugfs(struct seq_file *m, pgd_t *pgd, bool user)
    diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c
    index 9959657127f4..1616074075c3 100644
    --- a/arch/x86/platform/efi/efi_32.c
    +++ b/arch/x86/platform/efi/efi_32.c
    @@ -49,7 +49,7 @@ void efi_sync_low_kernel_mappings(void) {}
    void __init efi_dump_pagetable(void)
    {
    #ifdef CONFIG_EFI_PGT_DUMP
    - ptdump_walk_pgd_level(NULL, swapper_pg_dir);
    + ptdump_walk_pgd_level(NULL, &init_mm);
    #endif
    }

    diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
    index 08ce8177c3af..3cb63cd369d6 100644
    --- a/arch/x86/platform/efi/efi_64.c
    +++ b/arch/x86/platform/efi/efi_64.c
    @@ -614,9 +614,9 @@ void __init efi_dump_pagetable(void)
    {
    #ifdef CONFIG_EFI_PGT_DUMP
    if (efi_enabled(EFI_OLD_MEMMAP))
    - ptdump_walk_pgd_level(NULL, swapper_pg_dir);
    + ptdump_walk_pgd_level(NULL, &init_mm);
    else
    - ptdump_walk_pgd_level(NULL, efi_mm.pgd);
    + ptdump_walk_pgd_level(NULL, &efi_mm);
    #endif
    }

    --
    2.20.1
    \
     
     \ /
      Last update: 2019-12-06 14:55    [W:4.204 / U:0.832 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site