OSDN Git Service

powerpc/hugetlb: Fix 512k hugepages on 8xx with 16k page size
authorChristophe Leroy <christophe.leroy@c-s.fr>
Thu, 6 Feb 2020 13:50:28 +0000 (13:50 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 17 Feb 2020 01:47:05 +0000 (12:47 +1100)
commitf2b67ef90b0d5eca0f2255e02cf2f620bc0ddcdb
tree33b985cc5a392360c105eed437f958dcc40ef40a
parentd4f194ed9eb9841a8f978710e4d24296f791a85b
powerpc/hugetlb: Fix 512k hugepages on 8xx with 16k page size

Commit 55c8fc3f4930 ("powerpc/8xx: reintroduce 16K pages with HW
assistance") redefined pte_t as a struct of 4 pte_basic_t, because
in 16K pages mode there are four identical entries in the
page table. But the size of hugepage tables is calculated based
of the size of (void *). Therefore, we end up with page tables
of size 1k instead of 4k for 512k pages.

As 512k hugepage tables are the same size as standard page tables,
ie 4k, use the standard page tables instead of PGT_CACHE tables.

Fixes: 3fb69c6a1a13 ("powerpc/8xx: Enable 512k hugepage support with HW assistance")
Cc: stable@vger.kernel.org # v5.0+
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/90ec56a2315be602494619ed0223bba3b0b8d619.1580997007.git.christophe.leroy@c-s.fr
arch/powerpc/mm/hugetlbpage.c