patch-1.3.95 linux/include/asm-i386/pgtable.h

Next file: linux/include/asm-sparc/asi.h
Previous file: linux/include/asm-alpha/io.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.94/linux/include/asm-i386/pgtable.h linux/include/asm-i386/pgtable.h
@@ -40,7 +40,7 @@
  */
 
 #define __flush_tlb() \
-__asm__ __volatile__("movl %%cr3,%%eax\n\tmovl %%eax,%%cr3": : :"ax")
+do { unsigned long tmpreg; __asm__ __volatile__("movl %%cr3,%0\n\tmovl %0,%%cr3":"=r" (tmpreg) : :"memory"); } while (0)
 
 #ifdef CONFIG_M386
 #define __flush_tlb_one(addr) flush_tlb()
@@ -290,7 +290,7 @@
 do { \
 	(tsk)->tss.cr3 = (unsigned long) (pgdir); \
 	if ((tsk) == current) \
-		__asm__ __volatile__("movl %0,%%cr3": :"a" (pgdir)); \
+		__asm__ __volatile__("movl %0,%%cr3": :"r" (pgdir)); \
 } while (0)
 
 extern inline int pte_none(pte_t pte)		{ return !pte_val(pte); }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this