broken kernel syscalls on ppc64

Denis J Barrow DJ at de.ibm.com
Tue May 27 03:41:34 EST 2003


Hi,
I am developing with 2.5.66 & SLES 8 from suse
as most of the apps on SLES8 are 32 bit the check below is broken.

The reason being if a syscall is made from the kernel in the context of a
32 bit process
e.g. bash the syscall code below will incorrectly assume it the syscall is
being made with 32 bit
parameters.

I talked to Martin Schwidefsky & on zSeries they are checking whether the
PSW ( the s390's MSR )
is in 32 or 64 bit mode, I unfortunately don't think we can do the same
thing as MSR[SF] is not used
the same way as on zSeries.



      clrrdi      r10,r1,THREAD_SHIFT
      ld    r10,TI_FLAGS(r10)
      andi. r11,r10,_TIF_SYSCALL_TRACE
      bne-  50f
      cmpli 0,r0,NR_syscalls
      bge-  66f
/*
 * Need to vector to 32 Bit or default sys_call_table here,
 * based on caller's run-mode / personality.
 */
      andi. r11,r10,_TIF_32BIT
      beq-  15f
      ld    r10,.SYS_CALL_TABLE32 at toc(2)






D.J. Barrow
Linux Kernel Developer
dj at de.ibm.com,barrow_dj at yahoo.com
Phone:0049-7031-16-2943


** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list