mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-11 15:14:03 +08:00
x86/asm: Use alternative_2() in rdtsc_barrier()
... now that we have it. Acked-by: Andy Lutomirski <luto@amacapital.net> Cc: Richard Weinberger <richard@nod.at> Signed-off-by: Borislav Petkov <bp@suse.de>
This commit is contained in:
parent
6620ef28c8
commit
c70e1b475f
@ -95,13 +95,11 @@ do { \
|
|||||||
* Stop RDTSC speculation. This is needed when you need to use RDTSC
|
* Stop RDTSC speculation. This is needed when you need to use RDTSC
|
||||||
* (or get_cycles or vread that possibly accesses the TSC) in a defined
|
* (or get_cycles or vread that possibly accesses the TSC) in a defined
|
||||||
* code region.
|
* code region.
|
||||||
*
|
|
||||||
* (Could use an alternative three way for this if there was one.)
|
|
||||||
*/
|
*/
|
||||||
static __always_inline void rdtsc_barrier(void)
|
static __always_inline void rdtsc_barrier(void)
|
||||||
{
|
{
|
||||||
alternative(ASM_NOP3, "mfence", X86_FEATURE_MFENCE_RDTSC);
|
alternative_2("", "mfence", X86_FEATURE_MFENCE_RDTSC,
|
||||||
alternative(ASM_NOP3, "lfence", X86_FEATURE_LFENCE_RDTSC);
|
"lfence", X86_FEATURE_LFENCE_RDTSC);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* _ASM_X86_BARRIER_H */
|
#endif /* _ASM_X86_BARRIER_H */
|
||||||
|
@ -64,8 +64,8 @@
|
|||||||
*/
|
*/
|
||||||
static inline void rdtsc_barrier(void)
|
static inline void rdtsc_barrier(void)
|
||||||
{
|
{
|
||||||
alternative(ASM_NOP3, "mfence", X86_FEATURE_MFENCE_RDTSC);
|
alternative_2("", "mfence", X86_FEATURE_MFENCE_RDTSC,
|
||||||
alternative(ASM_NOP3, "lfence", X86_FEATURE_LFENCE_RDTSC);
|
"lfence", X86_FEATURE_LFENCE_RDTSC);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user