Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 33702
b: refs/heads/master
c: 841be8d
h: refs/heads/master
v: v3
  • Loading branch information
Andi Kleen authored and Linus Torvalds committed Aug 30, 2006
1 parent 0c8abdd commit 44ff0f9
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 28 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ceee88223047749ad683d397b19904c3dfb6adeb
refs/heads/master: 841be8ddf92578e5b481ed9f9abb85649fc13238
20 changes: 0 additions & 20 deletions trunk/include/asm-x86_64/alternative.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,6 @@ static inline void alternatives_smp_switch(int smp) {}
/*
* Alternative inline assembly for SMP.
*
* alternative_smp() takes two versions (SMP first, UP second) and is
* for more complex stuff such as spinlocks.
*
* The LOCK_PREFIX macro defined here replaces the LOCK and
* LOCK_PREFIX macros used everywhere in the source tree.
*
Expand All @@ -125,21 +122,6 @@ static inline void alternatives_smp_switch(int smp) {}
*/

#ifdef CONFIG_SMP
#define alternative_smp(smpinstr, upinstr, args...) \
asm volatile ("661:\n\t" smpinstr "\n662:\n" \
".section .smp_altinstructions,\"a\"\n" \
" .align 8\n" \
" .quad 661b\n" /* label */ \
" .quad 663f\n" /* new instruction */ \
" .byte " __stringify(X86_FEATURE_UP) "\n" \
" .byte 662b-661b\n" /* sourcelen */ \
" .byte 664f-663f\n" /* replacementlen */ \
".previous\n" \
".section .smp_altinstr_replacement,\"awx\"\n" \
"663:\n\t" upinstr "\n" /* replacement */ \
"664:\n\t.fill 662b-661b,1,0x42\n" /* space for original */ \
".previous" : args)

#define LOCK_PREFIX \
".section .smp_locks,\"a\"\n" \
" .align 8\n" \
Expand All @@ -148,8 +130,6 @@ static inline void alternatives_smp_switch(int smp) {}
"661:\n\tlock; "

#else /* ! CONFIG_SMP */
#define alternative_smp(smpinstr, upinstr, args...) \
asm volatile (upinstr : args)
#define LOCK_PREFIX ""
#endif

Expand Down
11 changes: 4 additions & 7 deletions trunk/include/asm-x86_64/spinlock.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

#define __raw_spin_lock_string \
"\n1:\t" \
"lock ; decl %0\n\t" \
LOCK_PREFIX " ; decl %0\n\t" \
"js 2f\n" \
LOCK_SECTION_START("") \
"2:\t" \
Expand All @@ -40,10 +40,7 @@

static inline void __raw_spin_lock(raw_spinlock_t *lock)
{
alternative_smp(
__raw_spin_lock_string,
__raw_spin_lock_string_up,
"=m" (lock->slock) : : "memory");
asm volatile(__raw_spin_lock_string : "=m" (lock->slock) : : "memory");
}

#define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock)
Expand Down Expand Up @@ -125,12 +122,12 @@ static inline int __raw_write_trylock(raw_rwlock_t *lock)

static inline void __raw_read_unlock(raw_rwlock_t *rw)
{
asm volatile("lock ; incl %0" :"=m" (rw->lock) : : "memory");
asm volatile(LOCK_PREFIX " ; incl %0" :"=m" (rw->lock) : : "memory");
}

static inline void __raw_write_unlock(raw_rwlock_t *rw)
{
asm volatile("lock ; addl $" RW_LOCK_BIAS_STR ",%0"
asm volatile(LOCK_PREFIX " ; addl $" RW_LOCK_BIAS_STR ",%0"
: "=m" (rw->lock) : : "memory");
}

Expand Down

0 comments on commit 44ff0f9

Please sign in to comment.