* [PATCH] SH-5: struct pt_regs:syscall_nr is unsigned.
@ 2009-04-23 19:47 Roel Kluin
2009-04-27 8:05 ` Paul Mundt
0 siblings, 1 reply; 2+ messages in thread
From: Roel Kluin @ 2009-04-23 19:47 UTC (permalink / raw)
To: linux-sh
vi arch/sh/include/asm/ptrace.h +9
And note that struct pt_regs:syscall_nr is unsigned.
So I think something like the patch below is required, isn't it? As an
alternative to the patch below, syscall_nr could become signed. what is
preferred?
--------------------------->8-------------8<------------------------------
In restore_sigcontext() syscall_nr is set to -1, but it is unsigned for
SH-5.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
---
diff --git a/arch/sh/include/asm/syscall_64.h b/arch/sh/include/asm/syscall_64.h
index c3561ca..291fc86 100644
--- a/arch/sh/include/asm/syscall_64.h
+++ b/arch/sh/include/asm/syscall_64.h
@@ -9,7 +9,7 @@
static inline long syscall_get_nr(struct task_struct *task,
struct pt_regs *regs)
{
- return (regs->syscall_nr >= 0) ? regs->regs[9] : -1L;
+ return (regs->syscall_nr != -1) ? regs->regs[9] : -1L;
}
static inline void syscall_rollback(struct task_struct *task,
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c
index 0663a0e..b851141 100644
--- a/arch/sh/kernel/signal_64.c
+++ b/arch/sh/kernel/signal_64.c
@@ -51,7 +51,7 @@ static inline void
handle_syscall_restart(struct pt_regs *regs, struct sigaction *sa)
{
/* If we're not from a syscall, bail out */
- if (regs->syscall_nr < 0)
+ if (regs->syscall_nr = -1)
return;
/* check for system call restart.. */
@@ -127,7 +127,7 @@ static int do_signal(struct pt_regs *regs, sigset_t *oldset)
no_signal:
/* Did we come from a system call? */
- if (regs->syscall_nr >= 0) {
+ if (regs->syscall_nr != -1) {
/* Restart the system call - no handlers present */
switch (regs->regs[REG_RET]) {
case -ERESTARTNOHAND:
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] SH-5: struct pt_regs:syscall_nr is unsigned.
2009-04-23 19:47 [PATCH] SH-5: struct pt_regs:syscall_nr is unsigned Roel Kluin
@ 2009-04-27 8:05 ` Paul Mundt
0 siblings, 0 replies; 2+ messages in thread
From: Paul Mundt @ 2009-04-27 8:05 UTC (permalink / raw)
To: linux-sh
On Thu, Apr 23, 2009 at 09:47:11PM +0200, Roel Kluin wrote:
> vi arch/sh/include/asm/ptrace.h +9
> And note that struct pt_regs:syscall_nr is unsigned.
>
> So I think something like the patch below is required, isn't it? As an
> alternative to the patch below, syscall_nr could become signed. what is
> preferred?
> --------------------------->8-------------8<------------------------------
> In restore_sigcontext() syscall_nr is set to -1, but it is unsigned for
> SH-5.
>
> Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
syscall_nr should be signed, yes (the assembly code expects that as
well). I've switched it over now, good spotting!
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-04-27 8:05 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-23 19:47 [PATCH] SH-5: struct pt_regs:syscall_nr is unsigned Roel Kluin
2009-04-27 8:05 ` Paul Mundt
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.