From: Glauber de Oliveira Costa <gcosta@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: lguest@ozlabs.org, virtualization@lists.linux-foundation.org,
chrisw@sous-sol.org, anthony@codemonkey.ws,
akpm@linux-foundation.org,
Glauber de Oliveira Costa <gcosta@redhat.com>,
mingo@elte.hu
Subject: [PATCH 8/25][V3] use macro for sti/cli in spinlock definitions
Date: Wed, 15 Aug 2007 09:49:28 -0300 [thread overview]
Message-ID: <1187182268408-git-send-email-gcosta@redhat.com> (raw)
In-Reply-To: <1187182253740-git-send-email-gcosta@redhat.com>
This patch switches the cli and sti instructions into macros.
In this header, they're just defined to the instructions they
refer to. Later on, when paravirt is defined, they will be
defined to something with paravirt abilities.
Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
include/asm-x86_64/spinlock.h | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/include/asm-x86_64/spinlock.h b/include/asm-x86_64/spinlock.h
index 88bf981..5bb5bf8 100644
--- a/include/asm-x86_64/spinlock.h
+++ b/include/asm-x86_64/spinlock.h
@@ -5,6 +5,14 @@
#include <asm/rwlock.h>
#include <asm/page.h>
#include <asm/processor.h>
+#ifdef CONFIG_PARAVIRT
+#include <asm/paravirt.h>
+#else
+#define CLI_STI_INPUT_ARGS
+#define CLI_STI_CLOBBERS
+#define CLI_STRING "cli"
+#define STI_STRING "sti"
+#endif
/*
* Your basic SMP spinlocks, allowing only a single CPU anywhere
@@ -48,12 +56,12 @@ static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long fla
"jns 5f\n"
"testl $0x200, %1\n\t" /* interrupts were disabled? */
"jz 4f\n\t"
- "sti\n"
+ STI_STRING "\n\t"
"3:\t"
"rep;nop\n\t"
"cmpl $0, %0\n\t"
"jle 3b\n\t"
- "cli\n\t"
+ CLI_STRING "\n\t"
"jmp 1b\n"
"4:\t"
"rep;nop\n\t"
@@ -61,7 +69,9 @@ static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long fla
"jg 1b\n\t"
"jmp 4b\n"
"5:\n\t"
- : "+m" (lock->slock) : "r" ((unsigned)flags) : "memory");
+ : "+m" (lock->slock)
+ : "r" ((unsigned)flags) CLI_STI_INPUT_ARGS
+ : "memory" CLI_STI_CLOBBERS);
}
#endif
--
1.4.4.2
next prev parent reply other threads:[~2007-08-15 12:49 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-15 12:49 [PATCH 0/25][V3] pvops_64 last round (hopefully) Glauber de Oliveira Costa
2007-08-15 12:49 ` [PATCH 1/25][V3] header file move Glauber de Oliveira Costa
[not found] ` <1187182197314-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 2/25][V3] tlb flushing routines Glauber de Oliveira Costa
[not found] ` <11871822062386-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 3/25][V3] irq_flags / halt routines Glauber de Oliveira Costa
2007-08-15 12:49 ` [PATCH 4/25][V3] Add debugreg/load_rsp native hooks Glauber de Oliveira Costa
[not found] ` <11871822244170-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 5/25][V3] native versions for system.h functions Glauber de Oliveira Costa
[not found] ` <11871822342754-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 6/25][V3] add native_apic read and write functions, as well as boot clocks ones Glauber de Oliveira Costa
[not found] ` <11871822421713-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 7/25][V3] interrupt related native paravirt functions Glauber de Oliveira Costa
2007-08-15 12:49 ` Glauber de Oliveira Costa [this message]
2007-08-15 12:49 ` [PATCH 9/25][V3] report ring kernel is running without paravirt Glauber de Oliveira Costa
[not found] ` <1187182282913-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 10/25][V3] export math_state_restore Glauber de Oliveira Costa
[not found] ` <11871822951747-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 11/25][V3] native versions for set pagetables Glauber de Oliveira Costa
[not found] ` <11871823042011-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 12/25][V3] turn msr.h functions into native versions Glauber de Oliveira Costa
[not found] ` <11871823151789-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 13/25][V3] add native functions for descriptors handling Glauber de Oliveira Costa
[not found] ` <11871823273810-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 14/25][V3] get rid of inline asm for load_cr3 Glauber de Oliveira Costa
[not found] ` <11871823373106-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 15/25][V3] introducing paravirt_activate_mm Glauber de Oliveira Costa
[not found] ` <11871823673236-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 16/25][V3] turn page operations into native versions Glauber de Oliveira Costa
[not found] ` <11871823782610-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 17/25][V3] introduce paravirt_release_pgd() Glauber de Oliveira Costa
[not found] ` <11871823892519-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 18/25][V3] turn priviled operations into macros in entry.S Glauber de Oliveira Costa
[not found] ` <11871823991803-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 19/25][V3] time-related functions paravirt provisions Glauber de Oliveira Costa
[not found] ` <11871824081337-git-send-email-! gcosta@redhat.com>
[not found] ` <11871824081337-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 20/25][V3] replace syscall_init Glauber de Oliveira Costa
[not found] ` <11871824192375-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 21/25][V3] export cpu_gdt_descr Glauber de Oliveira Costa
[not found] ` <11871824292046-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 22/25][V3] turn priviled operation into a macro Glauber de Oliveira Costa
[not found] ` <1187182438167-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 23/25][V3] provide paravirt patching function Glauber de Oliveira Costa
[not found] ` <1187182447280-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 24/25][V3] paravirt hooks for arch initialization Glauber de Oliveira Costa
[not found] ` <1187182455530-git-send-email-gcosta@redhat.com>
2007-08-15 12:49 ` [PATCH 25/25][V3] add paravirtualization support for x86_64 Glauber de Oliveira Costa
2007-08-15 14:03 ` [PATCH 21/25][V3] export cpu_gdt_descr Andi Kleen
[not found] ` <20070815140339.GG3406@bingen.suse.de>
2007-08-15 14:25 ` Glauber de Oliveira Costa
[not found] ` <5d6222a80708150725i45a064bfqfd43139338287988@mail.gmail.com>
[not found] ` <20070815154351.GI3406@bingen.suse.de>
2007-08-15 15:28 ` Glauber de Oliveira Costa
2007-08-15 15:43 ` Andi Kleen
2007-08-15 14:04 ` [PATCH 18/25][V3] turn priviled operations into macros in entry.S Steven Rostedt
[not found] ` <Pine.LNX.4.58.0708151002001.25252@gandalf.stny.rr.com>
2007-08-15 14:19 ` Glauber de Oliveira Costa
2007-08-15 13:55 ` [PATCH 3/25][V3] irq_flags / halt routines Andi Kleen
2007-08-15 14:18 ` Glauber de Oliveira Costa
[not found] ` <5d6222a80708150718v14f26343q7467385e7919fa76@mail.gmail.com>
[not found] ` <20070815154243.GH3406@bingen.suse.de>
2007-08-15 15:09 ` Glauber de Oliveira Costa
[not found] ` <46C31736.2050001@redhat.com>
2007-08-15 15:13 ` Avi Kivity
[not found] ` <46C31813.4050404@qumranet.com>
2007-08-15 15:17 ` Glauber de Oliveira Costa
[not found] ` <20070815163640.GJ3406@bingen.suse.de>
2007-08-15 16:22 ` Glauber de Oliveira Costa
[not found] ` <46C3283B.5090804@redhat.com>
2007-08-15 16:47 ` Chris Wright
[not found] ` <20070815164729.GU3672@sequoia.sous-sol.org>
2007-08-15 17:00 ` Glauber de Oliveira Costa
[not found] ` <46C3312D.40106@redhat.com>
2007-08-15 18:09 ` Chris Wright
[not found] ` <20070815180929.GX3672@sequoia.sous-sol.org>
2007-08-15 20:57 ` Glauber de Oliveira Costa
2007-08-15 22:47 ` Andi Kleen
2007-08-15 17:34 ` Andi Kleen
2007-08-15 21:40 ` Jeremy Fitzhardinge
2007-08-15 22:19 ` Glauber de Oliveira Costa
2007-08-15 16:36 ` Andi Kleen
2007-08-15 15:42 ` Andi Kleen
2007-08-15 18:04 ` [PATCH 0/25][V3] pvops_64 last round (hopefully) Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1187182268408-git-send-email-gcosta@redhat.com \
--to=gcosta@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=anthony@codemonkey.ws \
--cc=chrisw@sous-sol.org \
--cc=lguest@ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).