浏览代码

[PATCH] i386: Minor fixes & cleanup to tlb flush

(based on x86-64 changes)
- Add a proper memory clobber to invlpg
- Remove an unused extern

Signed-off-by: Andi Kleen <ak@suse.de>
Andi Kleen 18 年之前
父节点
当前提交
107878bb14
共有 1 个文件被更改,包括 1 次插入3 次删除
  1. 1 3
      include/asm-i386/tlbflush.h

+ 1 - 3
include/asm-i386/tlbflush.h

@@ -36,8 +36,6 @@
 			: "memory");					\
 			: "memory");					\
 	} while (0)
 	} while (0)
 
 
-extern unsigned long pgkern_mask;
-
 # define __flush_tlb_all()						\
 # define __flush_tlb_all()						\
 	do {								\
 	do {								\
 		if (cpu_has_pge)					\
 		if (cpu_has_pge)					\
@@ -49,7 +47,7 @@ extern unsigned long pgkern_mask;
 #define cpu_has_invlpg	(boot_cpu_data.x86 > 3)
 #define cpu_has_invlpg	(boot_cpu_data.x86 > 3)
 
 
 #define __flush_tlb_single(addr) \
 #define __flush_tlb_single(addr) \
-	__asm__ __volatile__("invlpg %0": :"m" (*(char *) addr))
+	__asm__ __volatile__("invlpg (%0)" ::"r" (addr) : "memory")
 
 
 #ifdef CONFIG_X86_INVLPG
 #ifdef CONFIG_X86_INVLPG
 # define __flush_tlb_one(addr) __flush_tlb_single(addr)
 # define __flush_tlb_one(addr) __flush_tlb_single(addr)