2003-11-24 20:52:16

by John Blackwood

[permalink] [raw]
Subject: [PATCH] arch/x86_64/kernel/signal.c linux-2.6.0-test10

Hi Andi,

In linux-2.6.0-test10, I believe that there are several lines of code
in the x86_64 version of handle_signal() that will not ever be executed
and can most likely be removed.

I also believe that there are several lines that should be added to the
end of the do_signal() routine for handling the -ERESTART_RESTARTBLOCK
case.

Thank you.

diff -ru linux-2.6.0-test10/arch/x86_64/kernel/signal.c
linux/arch/x86_64/kernel/signal.c
--- linux-2.6.0-test10/arch/x86_64/kernel/signal.c 2003-11-23
20:32:33.000000000 -0500
+++ linux/arch/x86_64/kernel/signal.c 2003-11-24 11:30:18.000000000 -0500
@@ -371,10 +371,6 @@
regs->rax = regs->orig_rax;
regs->rip -= 2;
}
- if (regs->rax == (unsigned long)-ERESTART_RESTARTBLOCK){
- regs->rax = __NR_restart_syscall;
- regs->rip -= 2;
- }
}

#ifdef CONFIG_IA32_EMULATION
@@ -453,6 +449,10 @@
regs->rax = regs->orig_rax;
regs->rip -= 2;
}
+ else if (res == -ERESTART_RESTARTBLOCK) {
+ regs->rax = __NR_restart_syscall;
+ regs->rip -= 2;
+ }
}
return 0;
}



2003-11-25 00:32:42

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] arch/x86_64/kernel/signal.c linux-2.6.0-test10

On Mon, Nov 24, 2003 at 03:52:08PM -0500, John Blackwood wrote:
> Hi Andi,
>
> In linux-2.6.0-test10, I believe that there are several lines of code
> in the x86_64 version of handle_signal() that will not ever be executed
> and can most likely be removed.
>
> I also believe that there are several lines that should be added to the
> end of the do_signal() routine for handling the -ERESTART_RESTARTBLOCK
> case.

Thanks, John. Was a mismerge. I added the change to my tree.

-Andi