Commit 7001d4af authored by Marc Zyngier's avatar Marc Zyngier Committed by Will Deacon
Browse files

arm64: Drop workaround for broken 'S' constraint with GCC 4.9



Since GCC < 5.1 has been shown to be unsuitable for the arm64 kernel,
let's drop the workaround for the 'S' asm constraint that GCC 4.9
doesn't always grok.

This is effectively a revert of 9fd339a4 ("arm64: Work around
broken GCC 4.9 handling of "S" constraint").

Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210118130129.2875949-1-maz@kernel.org


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 19c329f6
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -199,12 +199,6 @@ extern void __vgic_v3_init_lrs(void);

extern u32 __kvm_get_mdcr_el2(void);

#if defined(GCC_VERSION) && GCC_VERSION < 50000
#define SYM_CONSTRAINT	"i"
#else
#define SYM_CONSTRAINT	"S"
#endif

/*
 * Obtain the PC-relative address of a kernel symbol
 * s: symbol
@@ -221,7 +215,7 @@ extern u32 __kvm_get_mdcr_el2(void);
		typeof(s) *addr;					\
		asm("adrp	%0, %1\n"				\
		    "add	%0, %0, :lo12:%1\n"			\
		    : "=r" (addr) : SYM_CONSTRAINT (&s));		\
		    : "=r" (addr) : "S" (&s));				\
		addr;							\
	})