]> git.baikalelectronics.ru Git - kernel.git/commit
MIPS: Disable pte_special() for MIPS32 with RiXi
authorPaul Burton <paul.burton@mips.com>
Wed, 18 Sep 2019 22:03:27 +0000 (22:03 +0000)
committerPaul Burton <paul.burton@mips.com>
Fri, 20 Sep 2019 21:55:07 +0000 (14:55 -0700)
commitc5e658c9f5b968a4081018017fa097bdfda7e175
treef5666df782f272e045396afdd5eb9718d6275483
parent3f7dff8e1cb7dd50e54108471c2c946c0d27e7b0
MIPS: Disable pte_special() for MIPS32 with RiXi

Commit 997621af51e6 ("MIPS: pte_special()/pte_mkspecial() support")
added a _PAGE_SPECIAL bit to the pgprot bits of our PTEs. Unfortunately
for MIPS32 configurations with RiXi support this pushed the number of
pgprot bits to 13. Since the PFN field in EntryLo begins at bit 12 this
results in us shifting the most significant bit of the physical address
beyond the end of the PTE, leading any mapped access to a physical
address above 2GB to incorrectly access an address 2GB lower than
intended.

For now, disable the pte_special() support for MIPS32 configurations
that support RiXi.

Fixes: 997621af51e6 ("MIPS: pte_special()/pte_mkspecial() support")
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: Dmitry Korotin <dkorotin@wavecomp.com>
Cc: linux-mips@vger.kernel.org
arch/mips/Kconfig
arch/mips/include/asm/pgtable-bits.h