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

Commit c172cc92 authored by Russell King's avatar Russell King Committed by Russell King
Browse files

[ARM] mm 6: allow mem_types table to specify extended pte attributes



Add prot_pte_ext to the mem_types table to allow the extended pte
attributes to be passed to set_pte_ext(), thereby permitting us to
specify memory type information for the hardware PTE entries.

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent b29e9f5e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -55,7 +55,8 @@ static int remap_area_pte(pmd_t *pmd, unsigned long addr, unsigned long end,
		if (!pte_none(*pte))
			goto bad;

		set_pte_ext(pte, pfn_pte(phys_addr >> PAGE_SHIFT, prot), 0);
		set_pte_ext(pte, pfn_pte(phys_addr >> PAGE_SHIFT, prot),
			    type->prot_pte_ext);
		phys_addr += PAGE_SIZE;
	} while (pte++, addr += PAGE_SIZE, addr != end);
	return 0;
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ static inline pmd_t *pmd_off_k(unsigned long virt)

struct mem_type {
	unsigned int prot_pte;
	unsigned int prot_pte_ext;
	unsigned int prot_l1;
	unsigned int prot_sect;
	unsigned int domain;
+2 −1
Original line number Diff line number Diff line
@@ -391,7 +391,8 @@ static void __init alloc_init_pte(pmd_t *pmd, unsigned long addr,

	pte = pte_offset_kernel(pmd, addr);
	do {
		set_pte_ext(pte, pfn_pte(pfn, __pgprot(type->prot_pte)), 0);
		set_pte_ext(pte, pfn_pte(pfn, __pgprot(type->prot_pte)),
			    type->prot_pte_ext);
		pfn++;
	} while (pte++, addr += PAGE_SIZE, addr != end);
}