]> git.baikalelectronics.ru Git - kernel.git/commit
x86/asm: Improve how GEN_*_SUFFIXED_RMWcc() specify clobbers
authorJan Beulich <JBeulich@suse.com>
Mon, 19 Feb 2018 14:49:12 +0000 (07:49 -0700)
committerIngo Molnar <mingo@kernel.org>
Tue, 20 Feb 2018 08:33:39 +0000 (09:33 +0100)
commit18a78cc688a7d7620976d227105ff22d27fbfb25
tree005f64cec96d3ff3b7b05f2c26c5903f5a9c004b
parent0b0c4f00a948c3820450a2f911f018d2ae9b2f18
x86/asm: Improve how GEN_*_SUFFIXED_RMWcc() specify clobbers

Commit:

  97a5524262 ("x86/asm: Add suffix macro for GEN_*_RMWcc()")

... introduced "suffix" RMWcc operations, adding bogus clobber specifiers:
For one, on x86 there's no point explicitly clobbering "cc".

In fact, with GCC properly fixed, this results in an overlap being detected by
the compiler between outputs and clobbers.

Furthermore it seems bad practice to me to have clobber specification
and use of the clobbered register(s) disconnected - it should rather be
at the invocation place of that GEN_{UN,BIN}ARY_SUFFIXED_RMWcc() macros
that the clobber is specified which this particular invocation needs.

Drop the "cc" clobber altogether and move the "cx" one to refcount.h.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/5A8AF1F802000078001A91E1@prv-mh.provo.novell.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/include/asm/refcount.h
arch/x86/include/asm/rmwcc.h