Commit ec2640b1 authored by Aneesh Kumar K.V's avatar Aneesh Kumar K.V Committed by Michael Ellerman
Browse files

powerpc/mm: Disable hugepd for 64K page size.



After commit e2b3d202
("powerpc: Switch 16GB and 16MB explicit hugepages to a
different page table format"), we don't need to support
is_hugepd() for 64K page size.

Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent c13e1c05
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -364,6 +364,20 @@ typedef struct { signed long pd; } hugepd_t;

#ifdef CONFIG_HUGETLB_PAGE
#ifdef CONFIG_PPC_BOOK3S_64
#ifdef CONFIG_PPC_64K_PAGES
/*
 * With 64k page size, we have hugepage ptes in the pgd and pmd entries. We don't
 * need to setup hugepage directory for them. Our pte and page directory format
 * enable us to have this enabled. But to avoid errors when implementing new
 * features disable hugepd for 64K. We enable a debug version here, So we catch
 * wrong usage.
 */
#ifdef CONFIG_DEBUG_VM
extern int hugepd_ok(hugepd_t hpd);
#else
#define hugepd_ok(x)	(0)
#endif
#else
static inline int hugepd_ok(hugepd_t hpd)
{
	/*
@@ -372,6 +386,7 @@ static inline int hugepd_ok(hugepd_t hpd)
	 */
	return (((hpd.pd & 0x3) == 0x0) && ((hpd.pd & HUGEPD_SHIFT_MASK) != 0));
}
#endif
#else
static inline int hugepd_ok(hugepd_t hpd)
{
+19 −0
Original line number Diff line number Diff line
@@ -89,6 +89,25 @@ int pgd_huge(pgd_t pgd)
	 */
	return ((pgd_val(pgd) & 0x3) != 0x0);
}

#if defined(CONFIG_PPC_64K_PAGES) && defined(CONFIG_DEBUG_VM)
/*
 * This enables us to catch the wrong page directory format
 * Moved here so that we can use WARN() in the call.
 */
int hugepd_ok(hugepd_t hpd)
{
	bool is_hugepd;

	/*
	 * We should not find this format in page directory, warn otherwise.
	 */
	is_hugepd = (((hpd.pd & 0x3) == 0x0) && ((hpd.pd & HUGEPD_SHIFT_MASK) != 0));
	WARN(is_hugepd, "Found wrong page directory format\n");
	return 0;
}
#endif

#else
int pmd_huge(pmd_t pmd)
{