diff options
author | Benjamin LaHaise <bcrl@kvack.org> | 2005-09-04 00:56:52 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 09:06:14 +0200 |
commit | 52fdd08903a1d1162e184114837e232640191627 (patch) | |
tree | 9469f521b7ba12ac48337155bc5a65049d361229 /lib/semaphore-sleepers.c | |
parent | [PATCH] i386 boottime for_each_cpu broken (diff) | |
download | linux-52fdd08903a1d1162e184114837e232640191627.tar.xz linux-52fdd08903a1d1162e184114837e232640191627.zip |
[PATCH] unify x86/x86-64 semaphore code
This patch moves the common code in x86 and x86-64's semaphore.c into a
single file in lib/semaphore-sleepers.c. The arch specific asm stubs are
left in the arch tree (in semaphore.c for i386 and in the asm for x86-64).
There should be no changes in code/functionality with this patch.
Signed-off-by: Benjamin LaHaise <benjamin.c.lahaise@intel.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to '')
-rw-r--r-- | lib/semaphore-sleepers.c (renamed from arch/x86_64/kernel/semaphore.c) | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/arch/x86_64/kernel/semaphore.c b/lib/semaphore-sleepers.c index 48f7c18172b9..4d5f18889fa5 100644 --- a/arch/x86_64/kernel/semaphore.c +++ b/lib/semaphore-sleepers.c @@ -1,5 +1,5 @@ /* - * x86_64 semaphore implementation. + * i386 and x86-64 semaphore implementation. * * (C) Copyright 1999 Linus Torvalds * @@ -14,9 +14,8 @@ */ #include <linux/config.h> #include <linux/sched.h> +#include <linux/err.h> #include <linux/init.h> -#include <asm/errno.h> - #include <asm/semaphore.h> /* @@ -50,12 +49,12 @@ * we cannot lose wakeup events. */ -void __up(struct semaphore *sem) +fastcall void __up(struct semaphore *sem) { wake_up(&sem->wait); } -void __sched __down(struct semaphore * sem) +fastcall void __sched __down(struct semaphore * sem) { struct task_struct *tsk = current; DECLARE_WAITQUEUE(wait, tsk); @@ -92,7 +91,7 @@ void __sched __down(struct semaphore * sem) tsk->state = TASK_RUNNING; } -int __sched __down_interruptible(struct semaphore * sem) +fastcall int __sched __down_interruptible(struct semaphore * sem) { int retval = 0; struct task_struct *tsk = current; @@ -155,7 +154,7 @@ int __sched __down_interruptible(struct semaphore * sem) * single "cmpxchg" without failure cases, * but then it wouldn't work on a 386. */ -int __down_trylock(struct semaphore * sem) +fastcall int __down_trylock(struct semaphore * sem) { int sleepers; unsigned long flags; @@ -176,5 +175,3 @@ int __down_trylock(struct semaphore * sem) spin_unlock_irqrestore(&sem->wait.lock, flags); return 1; } - - |