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

Commit 2df58b6d authored by Juergen Gross's avatar Juergen Gross Committed by Thomas Gleixner
Browse files

x86: Use new cache mode type in arch/x86/mm/init_64.c



Instead of directly using the cache mode bits in the pte switch to
using the cache mode type.

Based-on-patch-by: default avatarStefan Bader <stefan.bader@canonical.com>
Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
Cc: stefan.bader@canonical.com
Cc: xen-devel@lists.xensource.com
Cc: konrad.wilk@oracle.com
Cc: ville.syrjala@linux.intel.com
Cc: david.vrabel@citrix.com
Cc: jbeulich@suse.com
Cc: toshi.kani@hp.com
Cc: plagnioj@jcrosoft.com
Cc: tomi.valkeinen@ti.com
Cc: bhelgaas@google.com
Link: http://lkml.kernel.org/r/1415019724-4317-7-git-send-email-jgross@suse.com


Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 1c64216b
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -337,12 +337,15 @@ pte_t * __init populate_extra_pte(unsigned long vaddr)
 * Create large page table mappings for a range of physical addresses.
 * Create large page table mappings for a range of physical addresses.
 */
 */
static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
						pgprot_t prot)
					enum page_cache_mode cache)
{
{
	pgd_t *pgd;
	pgd_t *pgd;
	pud_t *pud;
	pud_t *pud;
	pmd_t *pmd;
	pmd_t *pmd;
	pgprot_t prot;


	pgprot_val(prot) = pgprot_val(PAGE_KERNEL_LARGE) |
		pgprot_val(pgprot_4k_2_large(cachemode2pgprot(cache)));
	BUG_ON((phys & ~PMD_MASK) || (size & ~PMD_MASK));
	BUG_ON((phys & ~PMD_MASK) || (size & ~PMD_MASK));
	for (; size; phys += PMD_SIZE, size -= PMD_SIZE) {
	for (; size; phys += PMD_SIZE, size -= PMD_SIZE) {
		pgd = pgd_offset_k((unsigned long)__va(phys));
		pgd = pgd_offset_k((unsigned long)__va(phys));
@@ -365,12 +368,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,


void __init init_extra_mapping_wb(unsigned long phys, unsigned long size)
void __init init_extra_mapping_wb(unsigned long phys, unsigned long size)
{
{
	__init_extra_mapping(phys, size, PAGE_KERNEL_LARGE);
	__init_extra_mapping(phys, size, _PAGE_CACHE_MODE_WB);
}
}


void __init init_extra_mapping_uc(unsigned long phys, unsigned long size)
void __init init_extra_mapping_uc(unsigned long phys, unsigned long size)
{
{
	__init_extra_mapping(phys, size, PAGE_KERNEL_LARGE_NOCACHE);
	__init_extra_mapping(phys, size, _PAGE_CACHE_MODE_UC);
}
}


/*
/*