Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Kleen <ak@muc.de>2002-03-07 00:57:13 -0800
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-03-07 00:57:13 -0800
commit6282c8d30cde759b18b44636bb8d266f767150c0 (patch)
treeb5760de2c44b56a55f13887b5bc92cb54bdb1c59
parent63547b0604f68b7b75d5943afefae02dee1bc132 (diff)
[PATCH] Two small compile fixes for x86-64
Here are two small compile fixes for x86-64 in 2.5.6pre2. - Remove call to schedule_tail. - Fix inline assembly of semaphores to work with latest gcc 3.1.
-rw-r--r--arch/x86_64/kernel/entry.S2
-rw-r--r--include/asm-x86_64/rwsem.h8
2 files changed, 4 insertions, 6 deletions
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S
index e46bd97f9e34..6b98b90891f4 100644
--- a/arch/x86_64/kernel/entry.S
+++ b/arch/x86_64/kernel/entry.S
@@ -102,8 +102,6 @@
* A newly forked process directly context switches into this.
*/
ENTRY(ret_from_fork)
- movq %rbx, %rdi
- call schedule_tail
GET_THREAD_INFO(%rcx)
bt $TIF_SYSCALL_TRACE,threadinfo_flags(%rcx)
jc rff_trace
diff --git a/include/asm-x86_64/rwsem.h b/include/asm-x86_64/rwsem.h
index e77847de2ec3..5e65cd25c481 100644
--- a/include/asm-x86_64/rwsem.h
+++ b/include/asm-x86_64/rwsem.h
@@ -157,9 +157,9 @@ LOCK_PREFIX " xadd %%edx,(%%rax)\n\t" /* subtracts 1, returns the old valu
" jmp 1b\n"
".previous\n"
"# ending __up_read\n"
- : "+m"(sem->count), "+d"(tmp)
+ : "+d"(tmp)
: "a"(sem)
- : "memory", "cc");
+ : "memory");
}
/*
@@ -169,7 +169,7 @@ static inline void __up_write(struct rw_semaphore *sem)
{
__asm__ __volatile__(
"# beginning __up_write\n\t"
- " movl %2,%%edx\n\t"
+ " movl %1,%%edx\n\t"
LOCK_PREFIX " xaddl %%edx,(%%rax)\n\t" /* tries to transition 0xffff0001 -> 0x00000000 */
" jnz 2f\n\t" /* jump if the lock is being waited upon */
"1:\n\t"
@@ -181,7 +181,7 @@ LOCK_PREFIX " xaddl %%edx,(%%rax)\n\t" /* tries to transition 0xffff0001 ->
" jmp 1b\n"
".previous\n"
"# ending __up_write\n"
- : "+m"(sem->count)
+ :
: "a"(sem), "i"(-RWSEM_ACTIVE_WRITE_BIAS)
: "memory", "cc", "edx");
}