Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aa9cd505 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/mm: move some nohash pte helpers in nohash/[32:64]/pgtable.h



In order to allow their use in nohash/32/pgtable.h, we have to move the
following helpers in nohash/[32:64]/pgtable.h:
- pte_mkwrite()
- pte_mkdirty()
- pte_mkyoung()
- pte_wrprotect()

Reviewed-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent d81e6f8b
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -136,6 +136,34 @@ extern int icache_44x_need_flush;
#define pte_clear(mm, addr, ptep) \
	do { pte_update(ptep, ~0, 0); } while (0)

static inline pte_t pte_mkwrite(pte_t pte)
{
	pte_basic_t ptev;

	ptev = pte_val(pte) & ~_PAGE_RO;
	ptev |= _PAGE_RW;
	return __pte(ptev);
}

static inline pte_t pte_mkdirty(pte_t pte)
{
	return __pte(pte_val(pte) | _PAGE_DIRTY);
}

static inline pte_t pte_mkyoung(pte_t pte)
{
	return __pte(pte_val(pte) | _PAGE_ACCESSED);
}

static inline pte_t pte_wrprotect(pte_t pte)
{
	pte_basic_t ptev;

	ptev = pte_val(pte) & ~(_PAGE_RW | _PAGE_HWWRITE);
	ptev |= _PAGE_RO;
	return __pte(ptev);
}

#define pmd_none(pmd)		(!pmd_val(pmd))
#define	pmd_bad(pmd)		(pmd_val(pmd) & _PMD_BAD)
#define	pmd_present(pmd)	(pmd_val(pmd) & _PMD_PRESENT_MASK)
+20 −0
Original line number Diff line number Diff line
@@ -94,6 +94,26 @@
#ifndef __ASSEMBLY__
/* pte_clear moved to later in this file */

static inline pte_t pte_mkwrite(pte_t pte)
{
	return __pte(pte_val(pte) | _PAGE_RW);
}

static inline pte_t pte_mkdirty(pte_t pte)
{
	return __pte(pte_val(pte) | _PAGE_DIRTY);
}

static inline pte_t pte_mkyoung(pte_t pte)
{
	return __pte(pte_val(pte) | _PAGE_ACCESSED);
}

static inline pte_t pte_wrprotect(pte_t pte)
{
	return __pte(pte_val(pte) & ~_PAGE_RW);
}

#define PMD_BAD_BITS		(PTE_TABLE_SIZE-1)
#define PUD_BAD_BITS		(PMD_TABLE_SIZE-1)

+0 −28
Original line number Diff line number Diff line
@@ -77,15 +77,6 @@ static inline unsigned long pte_pfn(pte_t pte) {
	return pte_val(pte) >> PTE_RPN_SHIFT; }

/* Generic modifiers for PTE bits */
static inline pte_t pte_wrprotect(pte_t pte)
{
	pte_basic_t ptev;

	ptev = pte_val(pte) & ~(_PAGE_RW | _PAGE_HWWRITE);
	ptev |= _PAGE_RO;
	return __pte(ptev);
}

static inline pte_t pte_mkclean(pte_t pte)
{
	return __pte(pte_val(pte) & ~(_PAGE_DIRTY | _PAGE_HWWRITE));
@@ -96,25 +87,6 @@ static inline pte_t pte_mkold(pte_t pte)
	return __pte(pte_val(pte) & ~_PAGE_ACCESSED);
}

static inline pte_t pte_mkwrite(pte_t pte)
{
	pte_basic_t ptev;

	ptev = pte_val(pte) & ~_PAGE_RO;
	ptev |= _PAGE_RW;
	return __pte(ptev);
}

static inline pte_t pte_mkdirty(pte_t pte)
{
	return __pte(pte_val(pte) | _PAGE_DIRTY);
}

static inline pte_t pte_mkyoung(pte_t pte)
{
	return __pte(pte_val(pte) | _PAGE_ACCESSED);
}

static inline pte_t pte_mkspecial(pte_t pte)
{
	return __pte(pte_val(pte) | _PAGE_SPECIAL);