]> Pileus Git - ~andy/linux/commitdiff
x86/tlbflush.h: Define __native_flush_tlb_global_irq_disabled()
authorFenghua Yu <fenghua.yu@intel.com>
Fri, 21 Dec 2012 07:44:27 +0000 (23:44 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Thu, 31 Jan 2013 21:19:16 +0000 (13:19 -0800)
This function is called in __native_flush_tlb_global() and after
apply_microcode_early().

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Link: http://lkml.kernel.org/r/1356075872-3054-8-git-send-email-fenghua.yu@intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/tlbflush.h

index 0fee48e279cc6659c059acfe1dbc8a42047603e4..50a7fc0f824a8f027376f0f38af9d820502095bf 100644 (file)
@@ -20,10 +20,20 @@ static inline void __native_flush_tlb(void)
        native_write_cr3(native_read_cr3());
 }
 
+static inline void __native_flush_tlb_global_irq_disabled(void)
+{
+       unsigned long cr4;
+
+       cr4 = native_read_cr4();
+       /* clear PGE */
+       native_write_cr4(cr4 & ~X86_CR4_PGE);
+       /* write old PGE again and flush TLBs */
+       native_write_cr4(cr4);
+}
+
 static inline void __native_flush_tlb_global(void)
 {
        unsigned long flags;
-       unsigned long cr4;
 
        /*
         * Read-modify-write to CR4 - protect it from preemption and
@@ -32,11 +42,7 @@ static inline void __native_flush_tlb_global(void)
         */
        raw_local_irq_save(flags);
 
-       cr4 = native_read_cr4();
-       /* clear PGE */
-       native_write_cr4(cr4 & ~X86_CR4_PGE);
-       /* write old PGE again and flush TLBs */
-       native_write_cr4(cr4);
+       __native_flush_tlb_global_irq_disabled();
 
        raw_local_irq_restore(flags);
 }