On 29.01.19 23:14, Richard Weinberger via Xenomai wrote:
Hi!

When running a ia32 application on x86_64 I get bad syscall errors.
This happens with ipipe-core-4.14.89-x86-2.patch and xenomai 3.0.8.

The problem seems to be that both ipipe_handle_syscall() and
handle_head_syscall()
check for syscall-nr being >= NR_syscalls.
On ia32 the syscall table is larger and therefore the check is wrong.

Hmm, the kernel's tracer also only checks for NR_syscalls. Strange.


So the code has to check the TS_COMPAT flag and then compare either to
NR_syscalls or IA32_NR_syscalls.
I gave this already a short try and things seem to work better.


There are more places where we check for NR_syscalls, some in ipipe itself. Problem is that IA32_NR_syscalls is, well, IA32-specific while we are testing in generic code. We need to abstract that first, in ipipe. Then we can fix also Xenomai.

Philippe, any better idea?

Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

Reply via email to