x86: reintroduce volatile keyword in prototype to clflush()
The volatile keyword was removed from the clflush() prototype in commit e34907ae180f4fe6c28bb4516c679c2f81b0c9ed; the comment there states: x86: remove volatile keyword from clflush. the p parameter is an explicit memory reference, and is enough to prevent gcc to being nasty here. The volatile seems completely not needed. This reflects incorrect understanding of the function of the volatile keyword there. The purpose of the volatile keyword is informing gcc that it is safe to pass a volatile pointer to this function. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
2b06ac8671
commit
84fb144b92
1 changed files with 2 additions and 2 deletions
|
@ -271,9 +271,9 @@ static inline void native_wbinvd(void)
|
|||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
static inline void clflush(void *__p)
|
||||
static inline void clflush(volatile void *__p)
|
||||
{
|
||||
asm volatile("clflush %0" : "+m" (*(char __force *)__p));
|
||||
asm volatile("clflush %0" : "+m" (*(volatile char __force *)__p));
|
||||
}
|
||||
|
||||
#define nop() __asm__ __volatile__ ("nop")
|
||||
|
|
Reference in a new issue