mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

Current minimum required version of binutils is 2.25, which supports PAUSE instruction mnemonic. Replace "REP; NOP" with this proper mnemonic. No functional change intended. Signed-off-by: Uros Bizjak <ubizjak@gmail.com> Cc: Richard Weinberger <richard@nod.at> Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com> Cc: Johannes Berg <johannes@sipsolutions.net> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: David Laight <david.laight.linux@gmail.com> Link: https://patch.msgid.link/20250418083436.133148-2-ubizjak@gmail.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
43 lines
995 B
C
43 lines
995 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __UM_PROCESSOR_H
|
|
#define __UM_PROCESSOR_H
|
|
#include <linux/time-internal.h>
|
|
|
|
/* include faultinfo structure */
|
|
#include <sysdep/faultinfo.h>
|
|
|
|
#ifdef CONFIG_X86_32
|
|
# include "processor_32.h"
|
|
#else
|
|
# include "processor_64.h"
|
|
#endif
|
|
|
|
#define KSTK_EIP(tsk) KSTK_REG(tsk, HOST_IP)
|
|
#define KSTK_ESP(tsk) KSTK_REG(tsk, HOST_SP)
|
|
#define KSTK_EBP(tsk) KSTK_REG(tsk, HOST_BP)
|
|
|
|
#define ARCH_IS_STACKGROW(address) \
|
|
(address + 65536 + 32 * sizeof(unsigned long) >= UPT_SP(¤t->thread.regs.regs))
|
|
|
|
#include <asm/user.h>
|
|
|
|
/* PAUSE is a good thing to insert into busy-wait loops. */
|
|
static __always_inline void native_pause(void)
|
|
{
|
|
__asm__ __volatile__("pause": : :"memory");
|
|
}
|
|
|
|
static __always_inline void cpu_relax(void)
|
|
{
|
|
if (time_travel_mode == TT_MODE_INFCPU ||
|
|
time_travel_mode == TT_MODE_EXTERNAL)
|
|
time_travel_ndelay(1);
|
|
else
|
|
native_pause();
|
|
}
|
|
|
|
#define task_pt_regs(t) (&(t)->thread.regs)
|
|
|
|
#include <asm/processor-generic.h>
|
|
|
|
#endif
|