]> git.itanic.dy.fi Git - linux-stable/commitdiff
parisc/pgtable: Do not drop upper 5 address bits of physical address
authorHelge Deller <deller@gmx.de>
Tue, 7 Nov 2023 13:33:32 +0000 (14:33 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 28 Nov 2023 16:50:20 +0000 (16:50 +0000)
commit 166b0110d1ee53290bd11618df6e3991c117495a upstream.

When calculating the pfn for the iitlbt/idtlbt instruction, do not
drop the upper 5 address bits. This doesn't seem to have an effect
on physical hardware which uses less physical address bits, but in
qemu the missing bits are visible.

Signed-off-by: Helge Deller <deller@gmx.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/parisc/kernel/entry.S

index 2f64f112934b63797a5a64913e4c2ffdc652ae10..9ce4e525b392075ead16e1e710ac679b05b30c34 100644 (file)
         * to a CPU TLB 4k PFN (4k => 12 bits to shift) */
        #define PAGE_ADD_SHIFT          (PAGE_SHIFT-12)
        #define PAGE_ADD_HUGE_SHIFT     (REAL_HPAGE_SHIFT-12)
+       #define PFN_START_BIT   (63-ASM_PFN_PTE_SHIFT+(63-58)-PAGE_ADD_SHIFT)
 
        /* Drop prot bits and convert to page addr for iitlbt and idtlbt */
        .macro          convert_for_tlb_insert20 pte,tmp
 #ifdef CONFIG_HUGETLB_PAGE
        copy            \pte,\tmp
-       extrd,u         \tmp,(63-ASM_PFN_PTE_SHIFT)+(63-58)+PAGE_ADD_SHIFT,\
-                               64-PAGE_SHIFT-PAGE_ADD_SHIFT,\pte
+       extrd,u         \tmp,PFN_START_BIT,PFN_START_BIT+1,\pte
 
        depdi           _PAGE_SIZE_ENCODING_DEFAULT,63,\
                                (63-58)+PAGE_ADD_SHIFT,\pte
        depdi           _HUGE_PAGE_SIZE_ENCODING_DEFAULT,63,\
                                (63-58)+PAGE_ADD_HUGE_SHIFT,\pte
 #else /* Huge pages disabled */
-       extrd,u         \pte,(63-ASM_PFN_PTE_SHIFT)+(63-58)+PAGE_ADD_SHIFT,\
-                               64-PAGE_SHIFT-PAGE_ADD_SHIFT,\pte
+       extrd,u         \pte,PFN_START_BIT,PFN_START_BIT+1,\pte
        depdi           _PAGE_SIZE_ENCODING_DEFAULT,63,\
                                (63-58)+PAGE_ADD_SHIFT,\pte
 #endif