# HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1292525215 0
# Node ID 04f15c2de8fa8e22104ce0dfc591b57ce02dadac
# Parent 669c2f83b86c0c06ab20006488c67fb7237fcdef
x86: Remove unnecessary LOCK/LOCK_PREFIX macros.
We don't support !CONFIG_SMP.
Signed-off-by: Keir Fraser <keir@xxxxxxx>
---
xen/include/asm-ia64/config.h | 3 --
xen/include/asm-x86/atomic.h | 22 +++++++-------------
xen/include/asm-x86/bitops.h | 24 +++++-----------------
xen/include/asm-x86/system.h | 38 ++++++++++++++++++------------------
xen/include/asm-x86/x86_32/system.h | 6 ++---
xen/include/asm-x86/x86_64/system.h | 2 -
6 files changed, 37 insertions(+), 58 deletions(-)
diff -r 669c2f83b86c -r 04f15c2de8fa xen/include/asm-ia64/config.h
--- a/xen/include/asm-ia64/config.h Thu Dec 16 18:37:30 2010 +0000
+++ b/xen/include/asm-ia64/config.h Thu Dec 16 18:46:55 2010 +0000
@@ -84,9 +84,6 @@ typedef unsigned long paddr_t;
// from linux/include/linux/types.h
#define CLEAR_BITMAP(name,bits) \
memset(name, 0, BITS_TO_LONGS(bits)*sizeof(unsigned long))
-
-// FIXME?: x86-ism used in xen/mm.h
-#define LOCK_PREFIX
extern unsigned long total_pages;
extern unsigned long xen_pstart;
diff -r 669c2f83b86c -r 04f15c2de8fa xen/include/asm-x86/atomic.h
--- a/xen/include/asm-x86/atomic.h Thu Dec 16 18:37:30 2010 +0000
+++ b/xen/include/asm-x86/atomic.h Thu Dec 16 18:46:55 2010 +0000
@@ -3,12 +3,6 @@
#include <xen/config.h>
#include <asm/system.h>
-
-#ifdef CONFIG_SMP
-#define LOCK "lock ; "
-#else
-#define LOCK ""
-#endif
/*
* NB. I've pushed the volatile qualifier into the operations. This allows
@@ -48,7 +42,7 @@ static __inline__ void atomic_add(int i,
static __inline__ void atomic_add(int i, atomic_t *v)
{
asm volatile(
- LOCK "addl %1,%0"
+ "lock; addl %1,%0"
:"=m" (*(volatile int *)&v->counter)
:"ir" (i), "m" (*(volatile int *)&v->counter));
}
@@ -63,7 +57,7 @@ static __inline__ void atomic_sub(int i,
static __inline__ void atomic_sub(int i, atomic_t *v)
{
asm volatile(
- LOCK "subl %1,%0"
+ "lock; subl %1,%0"
:"=m" (*(volatile int *)&v->counter)
:"ir" (i), "m" (*(volatile int *)&v->counter));
}
@@ -82,7 +76,7 @@ static __inline__ int atomic_sub_and_tes
unsigned char c;
asm volatile(
- LOCK "subl %2,%0; sete %1"
+ "lock; subl %2,%0; sete %1"
:"=m" (*(volatile int *)&v->counter), "=qm" (c)
:"ir" (i), "m" (*(volatile int *)&v->counter) : "memory");
return c;
@@ -97,7 +91,7 @@ static __inline__ void atomic_inc(atomic
static __inline__ void atomic_inc(atomic_t *v)
{
asm volatile(
- LOCK "incl %0"
+ "lock; incl %0"
:"=m" (*(volatile int *)&v->counter)
:"m" (*(volatile int *)&v->counter));
}
@@ -111,7 +105,7 @@ static __inline__ void atomic_dec(atomic
static __inline__ void atomic_dec(atomic_t *v)
{
asm volatile(
- LOCK "decl %0"
+ "lock; decl %0"
:"=m" (*(volatile int *)&v->counter)
:"m" (*(volatile int *)&v->counter));
}
@@ -129,7 +123,7 @@ static __inline__ int atomic_dec_and_tes
unsigned char c;
asm volatile(
- LOCK "decl %0; sete %1"
+ "lock; decl %0; sete %1"
:"=m" (*(volatile int *)&v->counter), "=qm" (c)
:"m" (*(volatile int *)&v->counter) : "memory");
return c != 0;
@@ -148,7 +142,7 @@ static __inline__ int atomic_inc_and_tes
unsigned char c;
asm volatile(
- LOCK "incl %0; sete %1"
+ "lock; incl %0; sete %1"
:"=m" (*(volatile int *)&v->counter), "=qm" (c)
:"m" (*(volatile int *)&v->counter) : "memory");
return c != 0;
@@ -168,7 +162,7 @@ static __inline__ int atomic_add_negativ
unsigned char c;
asm volatile(
- LOCK "addl %2,%0; sets %1"
+ "lock; addl %2,%0; sets %1"
:"=m" (*(volatile int *)&v->counter), "=qm" (c)
:"ir" (i), "m" (*(volatile int *)&v->counter) : "memory");
return c;
diff -r 669c2f83b86c -r 04f15c2de8fa xen/include/asm-x86/bitops.h
--- a/xen/include/asm-x86/bitops.h Thu Dec 16 18:37:30 2010 +0000
+++ b/xen/include/asm-x86/bitops.h Thu Dec 16 18:46:55 2010 +0000
@@ -6,12 +6,6 @@
*/
#include <xen/config.h>
-
-#ifdef CONFIG_SMP
-#define LOCK_PREFIX "lock ; "
-#else
-#define LOCK_PREFIX ""
-#endif
/*
* We specify the memory operand as both input and output because the memory
@@ -41,8 +35,7 @@ static inline void set_bit(int nr, volat
static inline void set_bit(int nr, volatile void *addr)
{
asm volatile (
- LOCK_PREFIX
- "btsl %1,%0"
+ "lock; btsl %1,%0"
: "=m" (ADDR)
: "Ir" (nr), "m" (ADDR) : "memory");
}
@@ -85,8 +78,7 @@ static inline void clear_bit(int nr, vol
static inline void clear_bit(int nr, volatile void *addr)
{
asm volatile (
- LOCK_PREFIX
- "btrl %1,%0"
+ "lock; btrl %1,%0"
: "=m" (ADDR)
: "Ir" (nr), "m" (ADDR) : "memory");
}
@@ -152,8 +144,7 @@ static inline void change_bit(int nr, vo
static inline void change_bit(int nr, volatile void *addr)
{
asm volatile (
- LOCK_PREFIX
- "btcl %1,%0"
+ "lock; btcl %1,%0"
: "=m" (ADDR)
: "Ir" (nr), "m" (ADDR) : "memory");
}
@@ -175,8 +166,7 @@ static inline int test_and_set_bit(int n
int oldbit;
asm volatile (
- LOCK_PREFIX
- "btsl %2,%1\n\tsbbl %0,%0"
+ "lock; btsl %2,%1\n\tsbbl %0,%0"
: "=r" (oldbit), "=m" (ADDR)
: "Ir" (nr), "m" (ADDR) : "memory");
return oldbit;
@@ -223,8 +213,7 @@ static inline int test_and_clear_bit(int
int oldbit;
asm volatile (
- LOCK_PREFIX
- "btrl %2,%1\n\tsbbl %0,%0"
+ "lock; btrl %2,%1\n\tsbbl %0,%0"
: "=r" (oldbit), "=m" (ADDR)
: "Ir" (nr), "m" (ADDR) : "memory");
return oldbit;
@@ -287,8 +276,7 @@ static inline int test_and_change_bit(in
int oldbit;
asm volatile (
- LOCK_PREFIX
- "btcl %2,%1\n\tsbbl %0,%0"
+ "lock; btcl %2,%1\n\tsbbl %0,%0"
: "=r" (oldbit), "=m" (ADDR)
: "Ir" (nr), "m" (ADDR) : "memory");
return oldbit;
diff -r 669c2f83b86c -r 04f15c2de8fa xen/include/asm-x86/system.h
--- a/xen/include/asm-x86/system.h Thu Dec 16 18:37:30 2010 +0000
+++ b/xen/include/asm-x86/system.h Thu Dec 16 18:46:55 2010 +0000
@@ -91,37 +91,37 @@ static always_inline unsigned long __cmp
switch ( size )
{
case 1:
- asm volatile ( LOCK_PREFIX "cmpxchgb %b1,%2"
+ asm volatile ( "lock; cmpxchgb %b1,%2"
: "=a" (prev)
: "q" (new), "m" (*__xg((volatile void *)ptr)),
"0" (old)
: "memory" );
return prev;
case 2:
- asm volatile ( LOCK_PREFIX "cmpxchgw %w1,%2"
- : "=a" (prev)
- : "r" (new), "m" (*__xg((volatile void *)ptr)),
- "0" (old)
- : "memory" );
- return prev;
-#if defined(__i386__)
- case 4:
- asm volatile ( LOCK_PREFIX "cmpxchgl %1,%2"
- : "=a" (prev)
- : "r" (new), "m" (*__xg((volatile void *)ptr)),
- "0" (old)
- : "memory" );
- return prev;
-#elif defined(__x86_64__)
- case 4:
- asm volatile ( LOCK_PREFIX "cmpxchgl %k1,%2"
+ asm volatile ( "lock; cmpxchgw %w1,%2"
+ : "=a" (prev)
+ : "r" (new), "m" (*__xg((volatile void *)ptr)),
+ "0" (old)
+ : "memory" );
+ return prev;
+#if defined(__i386__)
+ case 4:
+ asm volatile ( "lock; cmpxchgl %1,%2"
+ : "=a" (prev)
+ : "r" (new), "m" (*__xg((volatile void *)ptr)),
+ "0" (old)
+ : "memory" );
+ return prev;
+#elif defined(__x86_64__)
+ case 4:
+ asm volatile ( "lock; cmpxchgl %k1,%2"
: "=a" (prev)
: "r" (new), "m" (*__xg((volatile void *)ptr)),
"0" (old)
: "memory" );
return prev;
case 8:
- asm volatile ( LOCK_PREFIX "cmpxchgq %1,%2"
+ asm volatile ( "lock; cmpxchgq %1,%2"
: "=a" (prev)
: "r" (new), "m" (*__xg((volatile void *)ptr)),
"0" (old)
diff -r 669c2f83b86c -r 04f15c2de8fa xen/include/asm-x86/x86_32/system.h
--- a/xen/include/asm-x86/x86_32/system.h Thu Dec 16 18:37:30 2010 +0000
+++ b/xen/include/asm-x86/x86_32/system.h Thu Dec 16 18:46:55 2010 +0000
@@ -6,7 +6,7 @@ static always_inline unsigned long long
{
unsigned long long prev;
asm volatile (
- LOCK_PREFIX "cmpxchg8b %3"
+ "lock; cmpxchg8b %3"
: "=A" (prev)
: "c" ((u32)(new>>32)), "b" ((u32)new),
"m" (*__xg((volatile void *)ptr)), "0" (old)
@@ -43,7 +43,7 @@ static always_inline unsigned long long
*/
#define __cmpxchg_user(_p,_o,_n,_isuff,_oppre,_regtype) \
asm volatile ( \
- "1: " LOCK_PREFIX "cmpxchg"_isuff" %"_oppre"2,%3\n" \
+ "1: lock; cmpxchg"_isuff" %"_oppre"2,%3\n" \
"2:\n" \
".section .fixup,\"ax\"\n" \
"3: movl $1,%1\n" \
@@ -72,7 +72,7 @@ static always_inline unsigned long long
break; \
case 8: \
asm volatile ( \
- "1: " LOCK_PREFIX "cmpxchg8b %4\n" \
+ "1: lock; cmpxchg8b %4\n" \
"2:\n" \
".section .fixup,\"ax\"\n" \
"3: movl $1,%1\n" \
diff -r 669c2f83b86c -r 04f15c2de8fa xen/include/asm-x86/x86_64/system.h
--- a/xen/include/asm-x86/x86_64/system.h Thu Dec 16 18:37:30 2010 +0000
+++ b/xen/include/asm-x86/x86_64/system.h Thu Dec 16 18:46:55 2010 +0000
@@ -13,7 +13,7 @@
*/
#define __cmpxchg_user(_p,_o,_n,_isuff,_oppre,_regtype) \
asm volatile ( \
- "1: " LOCK_PREFIX "cmpxchg"_isuff" %"_oppre"2,%3\n" \
+ "1: lock; cmpxchg"_isuff" %"_oppre"2,%3\n" \
"2:\n" \
".section .fixup,\"ax\"\n" \
"3: movl $1,%1\n" \
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|