Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3c598766 authored by Jan Beulich's avatar Jan Beulich Committed by H. Peter Anvin
Browse files

x86: fix percpu_{to,from}_op()



- the byte operand constraints were wrong for 32-bit
- the to-op's input operands weren't properly parenthesized

[ Impact: fix possible miscompilation or build failure ]

Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
parent 917a0153
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -82,22 +82,22 @@ do { \
	case 1:						\
		asm(op "b %1,"__percpu_arg(0)		\
		    : "+m" (var)			\
		    : "ri" ((T__)val));			\
		    : "qi" ((T__)(val)));		\
		break;					\
	case 2:						\
		asm(op "w %1,"__percpu_arg(0)		\
		    : "+m" (var)			\
		    : "ri" ((T__)val));			\
		    : "ri" ((T__)(val)));		\
		break;					\
	case 4:						\
		asm(op "l %1,"__percpu_arg(0)		\
		    : "+m" (var)			\
		    : "ri" ((T__)val));			\
		    : "ri" ((T__)(val)));		\
		break;					\
	case 8:						\
		asm(op "q %1,"__percpu_arg(0)		\
		    : "+m" (var)			\
		    : "re" ((T__)val));			\
		    : "re" ((T__)(val)));		\
		break;					\
	default: __bad_percpu_size();			\
	}						\
@@ -109,7 +109,7 @@ do { \
	switch (sizeof(var)) {				\
	case 1:						\
		asm(op "b "__percpu_arg(1)",%0"		\
		    : "=r" (ret__)			\
		    : "=q" (ret__)			\
		    : "m" (var));			\
		break;					\
	case 2:						\