Commit 5f1dd4dd authored by Borislav Petkov's avatar Borislav Petkov
Browse files

x86/fsgsbase: Replace static_cpu_has() with boot_cpu_has()



ptrace and prctl() are not really fast paths to warrant the use of
static_cpu_has() and cause alternatives patching for no good reason.
Replace with boot_cpu_has() which is simple and fast enough.

No functional changes.

Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20200818103715.32736-1-bp@alien8.de
parent 0b2c605f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ static inline unsigned long x86_fsbase_read_cpu(void)
{
	unsigned long fsbase;

	if (static_cpu_has(X86_FEATURE_FSGSBASE))
	if (boot_cpu_has(X86_FEATURE_FSGSBASE))
		fsbase = rdfsbase();
	else
		rdmsrl(MSR_FS_BASE, fsbase);
@@ -67,7 +67,7 @@ static inline unsigned long x86_fsbase_read_cpu(void)

static inline void x86_fsbase_write_cpu(unsigned long fsbase)
{
	if (static_cpu_has(X86_FEATURE_FSGSBASE))
	if (boot_cpu_has(X86_FEATURE_FSGSBASE))
		wrfsbase(fsbase);
	else
		wrmsrl(MSR_FS_BASE, fsbase);
+4 −4
Original line number Diff line number Diff line
@@ -407,7 +407,7 @@ unsigned long x86_gsbase_read_cpu_inactive(void)
{
	unsigned long gsbase;

	if (static_cpu_has(X86_FEATURE_FSGSBASE)) {
	if (boot_cpu_has(X86_FEATURE_FSGSBASE)) {
		unsigned long flags;

		local_irq_save(flags);
@@ -422,7 +422,7 @@ unsigned long x86_gsbase_read_cpu_inactive(void)

void x86_gsbase_write_cpu_inactive(unsigned long gsbase)
{
	if (static_cpu_has(X86_FEATURE_FSGSBASE)) {
	if (boot_cpu_has(X86_FEATURE_FSGSBASE)) {
		unsigned long flags;

		local_irq_save(flags);
@@ -439,7 +439,7 @@ unsigned long x86_fsbase_read_task(struct task_struct *task)

	if (task == current)
		fsbase = x86_fsbase_read_cpu();
	else if (static_cpu_has(X86_FEATURE_FSGSBASE) ||
	else if (boot_cpu_has(X86_FEATURE_FSGSBASE) ||
		 (task->thread.fsindex == 0))
		fsbase = task->thread.fsbase;
	else
@@ -454,7 +454,7 @@ unsigned long x86_gsbase_read_task(struct task_struct *task)

	if (task == current)
		gsbase = x86_gsbase_read_cpu_inactive();
	else if (static_cpu_has(X86_FEATURE_FSGSBASE) ||
	else if (boot_cpu_has(X86_FEATURE_FSGSBASE) ||
		 (task->thread.gsindex == 0))
		gsbase = task->thread.gsbase;
	else