lkml.org 
[lkml]   [2005]   [May]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: 32bit processes at compatbility mode on x86_64 machines fail to restart syscall after processing a signal
From
Date
"Zhang, Yanmin" <yanmin.zhang@intel.com> writes:

> The test case at
> http://cvs.sourceforge.net/viewcvs.py/posixtest/posixtestsuite/conforman
> ce/interfaces/clock_nanosleep/1-5.c fails if it runs as a 32bit process
> on x86_86 machines.
>
> The root cause is the sub 32bit process fails to restart the syscall
> after it is interrupted
> by a signal.
>
> The syscall number of sys_restart_syscall in table sys_call_table is
> __NR_restart_syscall (219) while it's __NR_ia32_restart_syscall (0) in
> ia32_sys_call_table. When regs->rax==(unsigned
> long)-ERESTART_RESTARTBLOCK,
> function do_signal doesn't distinguish if the process is 64bit or 32bit,
> and always sets
> restart syscall number as __NR_restart_syscall (219).

Thanks for tracking this down. Queued.

-Andi

-
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/

\
 
 \ /
  Last update: 2005-05-19 03:53    [W:0.050 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site