Message ID | 20241005123824.1366397-4-anshuman.khandual@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64/mm: Drop PXD_TABLE_BIT | expand |
On 05/10/2024 13:38, Anshuman Khandual wrote: > arm64 block mapping requires given page table entry's bits[1:0] to be "01". > But now only bit[1] is checked to be clear, while also implicitly assuming > bit[0] to be set. This modifies ptdump to check both the relevant bits via > the mask PMD_TYPE_MASK and check the resultant value against PMD_TYPE_MASK. > > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will@kernel.org> > Cc: Ard Biesheuvel <ardb@kernel.org> > Cc: Ryan Roberts <ryan.roberts@arm.com> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> Reviewed-by: Ryan Roberts <ryan.roberts@arm.com> > --- > arch/arm64/mm/ptdump.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/arm64/mm/ptdump.c b/arch/arm64/mm/ptdump.c > index 264c5f9b97d8..8cec0da4cff2 100644 > --- a/arch/arm64/mm/ptdump.c > +++ b/arch/arm64/mm/ptdump.c > @@ -80,10 +80,10 @@ static const struct ptdump_prot_bits pte_bits[] = { > .set = "CON", > .clear = " ", > }, { > - .mask = PTE_TABLE_BIT, > - .val = PTE_TABLE_BIT, > - .set = " ", > - .clear = "BLK", > + .mask = PMD_TYPE_MASK, > + .val = PMD_TYPE_SECT, > + .set = "BLK", > + .clear = " ", > }, { > .mask = PTE_UXN, > .val = PTE_UXN,
diff --git a/arch/arm64/mm/ptdump.c b/arch/arm64/mm/ptdump.c index 264c5f9b97d8..8cec0da4cff2 100644 --- a/arch/arm64/mm/ptdump.c +++ b/arch/arm64/mm/ptdump.c @@ -80,10 +80,10 @@ static const struct ptdump_prot_bits pte_bits[] = { .set = "CON", .clear = " ", }, { - .mask = PTE_TABLE_BIT, - .val = PTE_TABLE_BIT, - .set = " ", - .clear = "BLK", + .mask = PMD_TYPE_MASK, + .val = PMD_TYPE_SECT, + .set = "BLK", + .clear = " ", }, { .mask = PTE_UXN, .val = PTE_UXN,
arm64 block mapping requires given page table entry's bits[1:0] to be "01". But now only bit[1] is checked to be clear, while also implicitly assuming bit[0] to be set. This modifies ptdump to check both the relevant bits via the mask PMD_TYPE_MASK and check the resultant value against PMD_TYPE_MASK. Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Ard Biesheuvel <ardb@kernel.org> Cc: Ryan Roberts <ryan.roberts@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> --- arch/arm64/mm/ptdump.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)