From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755268AbcA2LdZ (ORCPT ); Fri, 29 Jan 2016 06:33:25 -0500 Received: from terminus.zytor.com ([198.137.202.10]:56358 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751244AbcA2LdW (ORCPT ); Fri, 29 Jan 2016 06:33:22 -0500 Date: Fri, 29 Jan 2016 03:32:09 -0800 From: "tip-bot for Michael S. Tsirkin" Message-ID: Cc: mst@redhat.com, andreyknvl@google.com, tglx@linutronix.de, mingo@kernel.org, linux-kernel@vger.kernel.org, peterz@infradead.org, bp@suse.de, brgerst@gmail.com, dvlasenk@redhat.com, akpm@linux-foundation.org, torvalds@linux-foundation.org, luto@kernel.org, luto@amacapital.net, dave@stgolabs.net, hpa@zytor.com, dbueso@suse.de, bp@alien8.de, virtualization@lists.linux-foundation.org, paulmck@linux.vnet.ibm.com Reply-To: brgerst@gmail.com, dvlasenk@redhat.com, bp@suse.de, linux-kernel@vger.kernel.org, mingo@kernel.org, peterz@infradead.org, andreyknvl@google.com, tglx@linutronix.de, mst@redhat.com, virtualization@lists.linux-foundation.org, paulmck@linux.vnet.ibm.com, dbueso@suse.de, bp@alien8.de, hpa@zytor.com, dave@stgolabs.net, luto@kernel.org, luto@amacapital.net, torvalds@linux-foundation.org, akpm@linux-foundation.org In-Reply-To: <1453921746-16178-2-git-send-email-mst@redhat.com> References: <1453921746-16178-2-git-send-email-mst@redhat.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:locking/core] locking/x86: Add cc clobber for ADDL Git-Commit-ID: bd922477d9350a3006d73dabb241400e6c4181b0 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: bd922477d9350a3006d73dabb241400e6c4181b0 Gitweb: http://git.kernel.org/tip/bd922477d9350a3006d73dabb241400e6c4181b0 Author: Michael S. Tsirkin AuthorDate: Thu, 28 Jan 2016 19:02:29 +0200 Committer: Ingo Molnar CommitDate: Fri, 29 Jan 2016 09:40:10 +0100 locking/x86: Add cc clobber for ADDL ADDL clobbers flags (such as CF) but barrier.h didn't tell this to GCC. Historically, GCC doesn't need one on x86, and always considers flags clobbered. We are probably missing the cc clobber in a *lot* of places for this reason. But even if not necessary, it's probably a good thing to add for documentation, and in case GCC semantcs ever change. Reported-by: Borislav Petkov Signed-off-by: Michael S. Tsirkin Acked-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andrey Konovalov Cc: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Davidlohr Bueso Cc: Davidlohr Bueso Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: virtualization Link: http://lkml.kernel.org/r/1453921746-16178-2-git-send-email-mst@redhat.com Signed-off-by: Ingo Molnar --- arch/x86/include/asm/barrier.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h index a584e1c..a65bdb1 100644 --- a/arch/x86/include/asm/barrier.h +++ b/arch/x86/include/asm/barrier.h @@ -15,9 +15,12 @@ * Some non-Intel clones support out of order store. wmb() ceases to be a * nop for these. */ -#define mb() alternative("lock; addl $0,0(%%esp)", "mfence", X86_FEATURE_XMM2) -#define rmb() alternative("lock; addl $0,0(%%esp)", "lfence", X86_FEATURE_XMM2) -#define wmb() alternative("lock; addl $0,0(%%esp)", "sfence", X86_FEATURE_XMM) +#define mb() asm volatile(ALTERNATIVE("lock; addl $0,0(%%esp)", "mfence", \ + X86_FEATURE_XMM2) ::: "memory", "cc") +#define rmb() asm volatile(ALTERNATIVE("lock; addl $0,0(%%esp)", "lfence", \ + X86_FEATURE_XMM2) ::: "memory", "cc") +#define wmb() asm volatile(ALTERNATIVE("lock; addl $0,0(%%esp)", "sfence", \ + X86_FEATURE_XMM2) ::: "memory", "cc") #else #define mb() asm volatile("mfence":::"memory") #define rmb() asm volatile("lfence":::"memory")