> 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
