> This fixes an incorrect sign extension in the compat layer that
> breaks 32bit shmget that are >2GB. sys_shmget has a signed size_t size
> argument, and the int size argument comming from 32bit user space would
get
> sign extended to 64bit, which is wrong.

Ok for s390 though not needed. The address space for a 31 bit programs
is limited to 2GB anyway.

As you mention sys_shmget, I'm currently trying to find out why the
second argument of sys_ipc for ppc64, s390-64 and sparc64 has been
changed from "long" to "int". This limits the maximum size of a shared
memory segment to 2GB for the three archs. A cast to unsigned would
allow 4GB, still not enough for a 64 bit architecture in the long run.
Before I submit a patch to replace "int" with "long" again I'd like
to understand the reason for the change.

blue skies,
   Martin

Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH


Reply via email to