Ver código fonte

Merge branch 'x86/mm' of ssh://ra.kernel.org/pub/scm/linux/kernel/git/tip/tip into x86/mm

Add missing patch from the __pa_symbol conversion series by Alexander
Duyck.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin 12 anos atrás
pai
commit
3596f5bb0a
3 arquivos alterados com 8 adições e 3 exclusões
  1. 1 1
      arch/x86/kernel/head32.c
  2. 1 1
      arch/x86/kernel/head64.c
  3. 6 1
      arch/x86/mm/pgtable.c

+ 1 - 1
arch/x86/kernel/head32.c

@@ -31,7 +31,7 @@ static void __init i386_default_early_setup(void)
 void __init i386_start_kernel(void)
 {
 	memblock_reserve(__pa_symbol(_text),
-			 (phys_addr_t)__bss_stop - (phys_addr_t)_text);
+			 (unsigned long)__bss_stop - (unsigned long)_text);
 
 #ifdef CONFIG_BLK_DEV_INITRD
 	/* Reserve INITRD */

+ 1 - 1
arch/x86/kernel/head64.c

@@ -98,7 +98,7 @@ void __init x86_64_start_reservations(char *real_mode_data)
 	copy_bootdata(__va(real_mode_data));
 
 	memblock_reserve(__pa_symbol(_text),
-			 (phys_addr_t)__bss_stop - (phys_addr_t)_text);
+			 (unsigned long)__bss_stop - (unsigned long)_text);
 
 #ifdef CONFIG_BLK_DEV_INITRD
 	/* Reserve INITRD */

+ 6 - 1
arch/x86/mm/pgtable.c

@@ -328,7 +328,12 @@ int pmdp_set_access_flags(struct vm_area_struct *vma,
 	if (changed && dirty) {
 		*pmdp = entry;
 		pmd_update_defer(vma->vm_mm, address, pmdp);
-		flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
+		/*
+		 * We had a write-protection fault here and changed the pmd
+		 * to to more permissive. No need to flush the TLB for that,
+		 * #PF is architecturally guaranteed to do that and in the
+		 * worst-case we'll generate a spurious fault.
+		 */
 	}
 
 	return changed;