summaryrefslogtreecommitdiffstats
path: root/arch/sh/include/asm/syscall_32.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-02-09 10:32:48 +0100
committerIngo Molnar <mingo@elte.hu>2009-02-09 10:32:48 +0100
commit4ad476e11f94fd3724c6e272d8220e99cd222b27 (patch)
treea8684d4ecbfe1d2b2b1e29ed74de65394ad21b43 /arch/sh/include/asm/syscall_32.h
parent304cc6ae1bf7a8e6d00053fbe0b7e2b26cdddda2 (diff)
parent8e4921515c1a379539607eb443d51c30f4f7f338 (diff)
downloadtalos-op-linux-4ad476e11f94fd3724c6e272d8220e99cd222b27.tar.gz
talos-op-linux-4ad476e11f94fd3724c6e272d8220e99cd222b27.zip
Merge commit 'v2.6.29-rc4' into tracing/core
Diffstat (limited to 'arch/sh/include/asm/syscall_32.h')
-rw-r--r--arch/sh/include/asm/syscall_32.h22
1 files changed, 3 insertions, 19 deletions
diff --git a/arch/sh/include/asm/syscall_32.h b/arch/sh/include/asm/syscall_32.h
index 05a868a71ef5..5bc34681d994 100644
--- a/arch/sh/include/asm/syscall_32.h
+++ b/arch/sh/include/asm/syscall_32.h
@@ -21,23 +21,10 @@ static inline void syscall_rollback(struct task_struct *task,
*/
}
-static inline bool syscall_has_error(struct pt_regs *regs)
-{
- return (regs->sr & 0x1) ? true : false;
-}
-static inline void syscall_set_error(struct pt_regs *regs)
-{
- regs->sr |= 0x1;
-}
-static inline void syscall_clear_error(struct pt_regs *regs)
-{
- regs->sr &= ~0x1;
-}
-
static inline long syscall_get_error(struct task_struct *task,
struct pt_regs *regs)
{
- return syscall_has_error(regs) ? regs->regs[0] : 0;
+ return IS_ERR_VALUE(regs->regs[0]) ? regs->regs[0] : 0;
}
static inline long syscall_get_return_value(struct task_struct *task,
@@ -50,13 +37,10 @@ static inline void syscall_set_return_value(struct task_struct *task,
struct pt_regs *regs,
int error, long val)
{
- if (error) {
- syscall_set_error(regs);
+ if (error)
regs->regs[0] = -error;
- } else {
- syscall_clear_error(regs);
+ else
regs->regs[0] = val;
- }
}
static inline void syscall_get_arguments(struct task_struct *task,
OpenPOWER on IntegriCloud