Files
linux/arch/powerpc/mm/ptdump/book3s64.c
David Hildenbrand 30680d5ef0 powerpc/ptdump: rename "struct pgtable_level" to "struct ptdump_pg_level"
We want to make use of "pgtable_level" for an enum in core-mm. Other
architectures seem to call "struct pgtable_level" either:
* "struct pg_level" when not exposed in a header (riscv, arm)
* "struct ptdump_pg_level" when expose in a header (arm64)

So let's follow what arm64 does.

Link: https://lkml.kernel.org/r/20250811112631.759341-7-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Barry Song <baohua@kernel.org>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: Dev Jain <dev.jain@arm.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Jann Horn <jannh@google.com>
Cc: Juegren Gross <jgross@suse.com>
Cc: Lance Yang <lance.yang@linux.dev>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Mariano Pache <npache@redhat.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Wei Yang <richard.weiyang@gmail.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-13 16:54:51 -07:00

123 lines
2.3 KiB
C

// SPDX-License-Identifier: GPL-2.0
/*
* From split of dump_linuxpagetables.c
* Copyright 2016, Rashmica Gupta, IBM Corp.
*
*/
#include <linux/kernel.h>
#include <linux/pgtable.h>
#include "ptdump.h"
static const struct flag_info flag_array[] = {
{
.mask = _PAGE_PRIVILEGED,
.val = 0,
.set = "user",
.clear = " ",
}, {
.mask = _PAGE_READ,
.val = _PAGE_READ,
.set = "r",
.clear = " ",
}, {
.mask = _PAGE_WRITE,
.val = _PAGE_WRITE,
.set = "w",
.clear = " ",
}, {
.mask = _PAGE_EXEC,
.val = _PAGE_EXEC,
.set = " X ",
.clear = " ",
}, {
.mask = _PAGE_PTE,
.val = _PAGE_PTE,
.set = "pte",
.clear = " ",
}, {
.mask = _PAGE_PRESENT,
.val = _PAGE_PRESENT,
.set = "valid",
.clear = " ",
}, {
.mask = _PAGE_PRESENT | _PAGE_INVALID,
.val = 0,
.set = " ",
.clear = "present",
}, {
.mask = H_PAGE_HASHPTE,
.val = H_PAGE_HASHPTE,
.set = "hpte",
.clear = " ",
}, {
.mask = _PAGE_DIRTY,
.val = _PAGE_DIRTY,
.set = "dirty",
.clear = " ",
}, {
.mask = _PAGE_ACCESSED,
.val = _PAGE_ACCESSED,
.set = "accessed",
.clear = " ",
}, {
.mask = _PAGE_NON_IDEMPOTENT,
.val = _PAGE_NON_IDEMPOTENT,
.set = "non-idempotent",
.clear = " ",
}, {
.mask = _PAGE_TOLERANT,
.val = _PAGE_TOLERANT,
.set = "tolerant",
.clear = " ",
}, {
.mask = H_PAGE_BUSY,
.val = H_PAGE_BUSY,
.set = "busy",
}, {
#ifdef CONFIG_PPC_64K_PAGES
.mask = H_PAGE_COMBO,
.val = H_PAGE_COMBO,
.set = "combo",
}, {
.mask = H_PAGE_4K_PFN,
.val = H_PAGE_4K_PFN,
.set = "4K_pfn",
}, {
#else /* CONFIG_PPC_64K_PAGES */
.mask = H_PAGE_F_GIX,
.val = H_PAGE_F_GIX,
.set = "f_gix",
.is_val = true,
.shift = H_PAGE_F_GIX_SHIFT,
}, {
.mask = H_PAGE_F_SECOND,
.val = H_PAGE_F_SECOND,
.set = "f_second",
}, {
#endif /* CONFIG_PPC_64K_PAGES */
.mask = _PAGE_SPECIAL,
.val = _PAGE_SPECIAL,
.set = "special",
}
};
struct ptdump_pg_level pg_level[5] = {
{ /* pgd */
.flag = flag_array,
.num = ARRAY_SIZE(flag_array),
}, { /* p4d */
.flag = flag_array,
.num = ARRAY_SIZE(flag_array),
}, { /* pud */
.flag = flag_array,
.num = ARRAY_SIZE(flag_array),
}, { /* pmd */
.flag = flag_array,
.num = ARRAY_SIZE(flag_array),
}, { /* pte */
.flag = flag_array,
.num = ARRAY_SIZE(flag_array),
},
};