diff options
author | Juergen Gross <jgross@suse.com> | 2014-11-03 08:01:52 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-11-16 05:04:25 -0500 |
commit | 2df58b6d35306e8dab48923c9fbe9e1ad17537e2 (patch) | |
tree | 1a2d8920e562f77ab5d4d65c3ea5dba41ec0282b /arch | |
parent | 1c64216be16404df7fab33c793890bb5076e8123 (diff) |
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: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Thomas 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: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/mm/init_64.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index ebca30f10708..bd42786f078b 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c | |||
@@ -337,12 +337,15 @@ pte_t * __init populate_extra_pte(unsigned long vaddr) | |||
337 | * Create large page table mappings for a range of physical addresses. | 337 | * Create large page table mappings for a range of physical addresses. |
338 | */ | 338 | */ |
339 | static void __init __init_extra_mapping(unsigned long phys, unsigned long size, | 339 | static void __init __init_extra_mapping(unsigned long phys, unsigned long size, |
340 | pgprot_t prot) | 340 | enum page_cache_mode cache) |
341 | { | 341 | { |
342 | pgd_t *pgd; | 342 | pgd_t *pgd; |
343 | pud_t *pud; | 343 | pud_t *pud; |
344 | pmd_t *pmd; | 344 | pmd_t *pmd; |
345 | pgprot_t prot; | ||
345 | 346 | ||
347 | pgprot_val(prot) = pgprot_val(PAGE_KERNEL_LARGE) | | ||
348 | pgprot_val(pgprot_4k_2_large(cachemode2pgprot(cache))); | ||
346 | BUG_ON((phys & ~PMD_MASK) || (size & ~PMD_MASK)); | 349 | BUG_ON((phys & ~PMD_MASK) || (size & ~PMD_MASK)); |
347 | for (; size; phys += PMD_SIZE, size -= PMD_SIZE) { | 350 | for (; size; phys += PMD_SIZE, size -= PMD_SIZE) { |
348 | pgd = pgd_offset_k((unsigned long)__va(phys)); | 351 | pgd = pgd_offset_k((unsigned long)__va(phys)); |
@@ -365,12 +368,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size, | |||
365 | 368 | ||
366 | void __init init_extra_mapping_wb(unsigned long phys, unsigned long size) | 369 | void __init init_extra_mapping_wb(unsigned long phys, unsigned long size) |
367 | { | 370 | { |
368 | __init_extra_mapping(phys, size, PAGE_KERNEL_LARGE); | 371 | __init_extra_mapping(phys, size, _PAGE_CACHE_MODE_WB); |
369 | } | 372 | } |
370 | 373 | ||
371 | void __init init_extra_mapping_uc(unsigned long phys, unsigned long size) | 374 | void __init init_extra_mapping_uc(unsigned long phys, unsigned long size) |
372 | { | 375 | { |
373 | __init_extra_mapping(phys, size, PAGE_KERNEL_LARGE_NOCACHE); | 376 | __init_extra_mapping(phys, size, _PAGE_CACHE_MODE_UC); |
374 | } | 377 | } |
375 | 378 | ||
376 | /* | 379 | /* |