Commit a936af8e authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

x86/smap: Ditch __stringify()



Linus noticed all users of __ASM_STAC/__ASM_CLAC are with
__stringify(). Just make them a string.

Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent e74deb11
Loading
Loading
Loading
Loading
+9 −10
Original line number Original line Diff line number Diff line
@@ -13,13 +13,12 @@
#ifndef _ASM_X86_SMAP_H
#ifndef _ASM_X86_SMAP_H
#define _ASM_X86_SMAP_H
#define _ASM_X86_SMAP_H


#include <linux/stringify.h>
#include <asm/nops.h>
#include <asm/nops.h>
#include <asm/cpufeatures.h>
#include <asm/cpufeatures.h>


/* "Raw" instruction opcodes */
/* "Raw" instruction opcodes */
#define __ASM_CLAC	.byte 0x0f,0x01,0xca
#define __ASM_CLAC	".byte 0x0f,0x01,0xca"
#define __ASM_STAC	.byte 0x0f,0x01,0xcb
#define __ASM_STAC	".byte 0x0f,0x01,0xcb"


#ifdef __ASSEMBLY__
#ifdef __ASSEMBLY__


@@ -28,10 +27,10 @@
#ifdef CONFIG_X86_SMAP
#ifdef CONFIG_X86_SMAP


#define ASM_CLAC \
#define ASM_CLAC \
	ALTERNATIVE "", __stringify(__ASM_CLAC), X86_FEATURE_SMAP
	ALTERNATIVE "", __ASM_CLAC, X86_FEATURE_SMAP


#define ASM_STAC \
#define ASM_STAC \
	ALTERNATIVE "", __stringify(__ASM_STAC), X86_FEATURE_SMAP
	ALTERNATIVE "", __ASM_STAC, X86_FEATURE_SMAP


#else /* CONFIG_X86_SMAP */
#else /* CONFIG_X86_SMAP */


@@ -49,20 +48,20 @@
static __always_inline void clac(void)
static __always_inline void clac(void)
{
{
	/* Note: a barrier is implicit in alternative() */
	/* Note: a barrier is implicit in alternative() */
	alternative("", __stringify(__ASM_CLAC), X86_FEATURE_SMAP);
	alternative("", __ASM_CLAC, X86_FEATURE_SMAP);
}
}


static __always_inline void stac(void)
static __always_inline void stac(void)
{
{
	/* Note: a barrier is implicit in alternative() */
	/* Note: a barrier is implicit in alternative() */
	alternative("", __stringify(__ASM_STAC), X86_FEATURE_SMAP);
	alternative("", __ASM_STAC, X86_FEATURE_SMAP);
}
}


static __always_inline unsigned long smap_save(void)
static __always_inline unsigned long smap_save(void)
{
{
	unsigned long flags;
	unsigned long flags;


	asm volatile (ALTERNATIVE("", "pushf; pop %0; " __stringify(__ASM_CLAC),
	asm volatile (ALTERNATIVE("", "pushf; pop %0; " __ASM_CLAC,
				  X86_FEATURE_SMAP)
				  X86_FEATURE_SMAP)
		      : "=rm" (flags) : : "memory", "cc");
		      : "=rm" (flags) : : "memory", "cc");


@@ -77,9 +76,9 @@ static __always_inline void smap_restore(unsigned long flags)


/* These macros can be used in asm() statements */
/* These macros can be used in asm() statements */
#define ASM_CLAC \
#define ASM_CLAC \
	ALTERNATIVE("", __stringify(__ASM_CLAC), X86_FEATURE_SMAP)
	ALTERNATIVE("", __ASM_CLAC, X86_FEATURE_SMAP)
#define ASM_STAC \
#define ASM_STAC \
	ALTERNATIVE("", __stringify(__ASM_STAC), X86_FEATURE_SMAP)
	ALTERNATIVE("", __ASM_STAC, X86_FEATURE_SMAP)


#else /* CONFIG_X86_SMAP */
#else /* CONFIG_X86_SMAP */