forked from Minki/linux
powerpc/mm: Disable hugepd for 64K page size.
After commit e2b3d202d1
("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: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
c13e1c05b2
commit
ec2640b114
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user