Re: [PATCH] compatibility syscall layer (lets try again)

From: Jim Houston (jim.houston@ccur.com)
Date: Mon Dec 09 2002 - 12:49:37 EST


Linus Torvalds wrote:

> NOTE NOTE NOTE! This patch is totally untested. It may or may not compile
> and work. It _looks_ correct, but that's all I'm going to guarantee about
> it.
>
> if (regs->eax == -ERESTART_RESTARTBLOCK){
> + struct restart_block *restart = &current_thread_info()->restart_block;
> regs->eax = __NR_restart_syscall;
> + regs->ebx = restart->arg0;
> + regs->ecx = restart->arg1;

Hi Linus,

Either I'm missing something or this is broken if there is ever
more than one restart function involved. You save the arguments
to the register state that gdb saves but not the restart function
address. In the nested case this would call one restart function
with the arguments of another.

Jim Houston - Concurrent Computer Corp.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Dec 15 2002 - 22:00:15 EST