Commit fd659e8f authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/32s: Change mfsrin() into a static inline function



mfsrin() is a macro.

Change in into an inline function to avoid conflicts in KVM
and make it more evolutive.

Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/72c7b9879e2e2e6f5c27dadda6486386c2b50f23.1612612022.git.christophe.leroy@csgroup.eu
parent 8524e2e7
Loading
Loading
Loading
Loading
+8 −3
Original line number Original line Diff line number Diff line
@@ -1413,9 +1413,14 @@ static inline void msr_check_and_clear(unsigned long bits)
}
}


#ifdef CONFIG_PPC32
#ifdef CONFIG_PPC32
#define mfsrin(v)	({unsigned int rval; \
static inline u32 mfsrin(u32 idx)
			asm volatile("mfsrin %0,%1" : "=r" (rval) : "r" (v)); \
{
					rval;})
	u32 val;

	asm volatile("mfsrin %0, %1" : "=r" (val): "r" (idx));

	return val;
}


static inline void mtsrin(u32 val, u32 idx)
static inline void mtsrin(u32 val, u32 idx)
{
{
+0 −4
Original line number Original line Diff line number Diff line
@@ -61,10 +61,6 @@
#define SPRN_GQR6		918
#define SPRN_GQR6		918
#define SPRN_GQR7		919
#define SPRN_GQR7		919


/* Book3S_32 defines mfsrin(v) - but that messes up our abstract
 * function pointers, so let's just disable the define. */
#undef mfsrin

enum priv_level {
enum priv_level {
	PRIV_PROBLEM = 0,
	PRIV_PROBLEM = 0,
	PRIV_SUPER = 1,
	PRIV_SUPER = 1,