diff options
| author | Ingo Molnar <mingo@kernel.org> | 2013-04-19 13:03:08 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2013-04-19 13:03:08 +0200 | 
| commit | 5379f8c0d72cab43bbe6d974ceb3ad84dddc2b8e (patch) | |
| tree | 524d8ac34cc8c7ef68b43e3ee6e08e27db86299c /arch/x86/mm/pageattr.c | |
| parent | b6d5278dc8385eaf2e3904a4af444a04f6ae4e71 (diff) | |
| parent | 94c1acf2c85b03a59a42d931a94a13a76c123a62 (diff) | |
| download | olio-linux-3.10-5379f8c0d72cab43bbe6d974ceb3ad84dddc2b8e.tar.xz olio-linux-3.10-5379f8c0d72cab43bbe6d974ceb3ad84dddc2b8e.zip  | |
Merge tag 'edac_amd_f16h' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras into x86/ras
Pull AMD F16h support for amd64_edac from Borislav Petkov.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/mm/pageattr.c')
| -rw-r--r-- | arch/x86/mm/pageattr.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index 091934e1d0d..fb4e73ec24d 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c @@ -467,7 +467,7 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,  	 * We are safe now. Check whether the new pgprot is the same:  	 */  	old_pte = *kpte; -	old_prot = new_prot = req_prot = pte_pgprot(old_pte); +	old_prot = req_prot = pte_pgprot(old_pte);  	pgprot_val(req_prot) &= ~pgprot_val(cpa->mask_clr);  	pgprot_val(req_prot) |= pgprot_val(cpa->mask_set); @@ -478,12 +478,12 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,  	 * a non present pmd. The canon_pgprot will clear _PAGE_GLOBAL  	 * for the ancient hardware that doesn't support it.  	 */ -	if (pgprot_val(new_prot) & _PAGE_PRESENT) -		pgprot_val(new_prot) |= _PAGE_PSE | _PAGE_GLOBAL; +	if (pgprot_val(req_prot) & _PAGE_PRESENT) +		pgprot_val(req_prot) |= _PAGE_PSE | _PAGE_GLOBAL;  	else -		pgprot_val(new_prot) &= ~(_PAGE_PSE | _PAGE_GLOBAL); +		pgprot_val(req_prot) &= ~(_PAGE_PSE | _PAGE_GLOBAL); -	new_prot = canon_pgprot(new_prot); +	req_prot = canon_pgprot(req_prot);  	/*  	 * old_pte points to the large page base address. So we need @@ -1413,6 +1413,8 @@ void kernel_map_pages(struct page *page, int numpages, int enable)  	 * but that can deadlock->flush only current cpu:  	 */  	__flush_tlb_all(); + +	arch_flush_lazy_mmu_mode();  }  #ifdef CONFIG_HIBERNATION  |