diff options
Diffstat (limited to '')
| -rw-r--r-- | arch/x86/include/asm/vgtod.h | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/arch/x86/include/asm/vgtod.h b/arch/x86/include/asm/vgtod.h index e7e9682a33e9..f556c4843aa1 100644 --- a/arch/x86/include/asm/vgtod.h +++ b/arch/x86/include/asm/vgtod.h @@ -80,9 +80,11 @@ static inline unsigned int __getcpu(void)  	/*  	 * Load per CPU data from GDT.  LSL is faster than RDTSCP and -	 * works on all CPUs. +	 * works on all CPUs.  This is volatile so that it orders +	 * correctly wrt barrier() and to keep gcc from cleverly +	 * hoisting it out of the calling function.  	 */ -	asm("lsl %1,%0" : "=r" (p) : "r" (__PER_CPU_SEG)); +	asm volatile ("lsl %1,%0" : "=r" (p) : "r" (__PER_CPU_SEG));  	return p;  } | 
