Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm
Pull ARM fixes from Russell King: "A couple of fixes for pmd_mknotpresent()/pmd_present() for LPAE systems" * 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm: ARM: 8579/1: mm: Fix definition of pmd_mknotpresent ARM: 8578/1: mm: ensure pmd_present only checks the valid bit
This commit is contained in:
Коммит
c141afd1a2
|
@ -193,6 +193,7 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr)
|
||||||
|
|
||||||
#define pmd_large(pmd) (pmd_val(pmd) & 2)
|
#define pmd_large(pmd) (pmd_val(pmd) & 2)
|
||||||
#define pmd_bad(pmd) (pmd_val(pmd) & 2)
|
#define pmd_bad(pmd) (pmd_val(pmd) & 2)
|
||||||
|
#define pmd_present(pmd) (pmd_val(pmd))
|
||||||
|
|
||||||
#define copy_pmd(pmdpd,pmdps) \
|
#define copy_pmd(pmdpd,pmdps) \
|
||||||
do { \
|
do { \
|
||||||
|
|
|
@ -211,6 +211,7 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr)
|
||||||
: !!(pmd_val(pmd) & (val)))
|
: !!(pmd_val(pmd) & (val)))
|
||||||
#define pmd_isclear(pmd, val) (!(pmd_val(pmd) & (val)))
|
#define pmd_isclear(pmd, val) (!(pmd_val(pmd) & (val)))
|
||||||
|
|
||||||
|
#define pmd_present(pmd) (pmd_isset((pmd), L_PMD_SECT_VALID))
|
||||||
#define pmd_young(pmd) (pmd_isset((pmd), PMD_SECT_AF))
|
#define pmd_young(pmd) (pmd_isset((pmd), PMD_SECT_AF))
|
||||||
#define pte_special(pte) (pte_isset((pte), L_PTE_SPECIAL))
|
#define pte_special(pte) (pte_isset((pte), L_PTE_SPECIAL))
|
||||||
static inline pte_t pte_mkspecial(pte_t pte)
|
static inline pte_t pte_mkspecial(pte_t pte)
|
||||||
|
@ -249,10 +250,10 @@ PMD_BIT_FUNC(mkyoung, |= PMD_SECT_AF);
|
||||||
#define pfn_pmd(pfn,prot) (__pmd(((phys_addr_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot)))
|
#define pfn_pmd(pfn,prot) (__pmd(((phys_addr_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot)))
|
||||||
#define mk_pmd(page,prot) pfn_pmd(page_to_pfn(page),prot)
|
#define mk_pmd(page,prot) pfn_pmd(page_to_pfn(page),prot)
|
||||||
|
|
||||||
/* represent a notpresent pmd by zero, this is used by pmdp_invalidate */
|
/* represent a notpresent pmd by faulting entry, this is used by pmdp_invalidate */
|
||||||
static inline pmd_t pmd_mknotpresent(pmd_t pmd)
|
static inline pmd_t pmd_mknotpresent(pmd_t pmd)
|
||||||
{
|
{
|
||||||
return __pmd(0);
|
return __pmd(pmd_val(pmd) & ~L_PMD_SECT_VALID);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
|
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
|
||||||
|
|
|
@ -182,7 +182,6 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
|
||||||
#define pgd_offset_k(addr) pgd_offset(&init_mm, addr)
|
#define pgd_offset_k(addr) pgd_offset(&init_mm, addr)
|
||||||
|
|
||||||
#define pmd_none(pmd) (!pmd_val(pmd))
|
#define pmd_none(pmd) (!pmd_val(pmd))
|
||||||
#define pmd_present(pmd) (pmd_val(pmd))
|
|
||||||
|
|
||||||
static inline pte_t *pmd_page_vaddr(pmd_t pmd)
|
static inline pte_t *pmd_page_vaddr(pmd_t pmd)
|
||||||
{
|
{
|
||||||
|
|
Загрузка…
Ссылка в новой задаче