Re: [PATCH] change compat shmget size arg to signed

4 messages, 2 authors, 2006-03-06 · open the first message on its own page

Re: [PATCH] change compat shmget size arg to signed

From: Stephen Rothwell <hidden>
Date: 2006-02-23 23:16:44

Hi Olaf,
quoted hunk
change second arg (the 'size') to signed to handle a size of -1.
ltp test shmget02 fails. This patch fixes it.
Oddly, we see the failure only on a POWER4 LPAR with 4.6G ram.

Signed-off-by: Olaf Hering <olh at suse.de>

 arch/powerpc/kernel/sys_ppc32.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.16-rc4-olh/arch/powerpc/kernel/sys_ppc32.c
===================================================================
--- linux-2.6.16-rc4-olh.orig/arch/powerpc/kernel/sys_ppc32.c
+++ linux-2.6.16-rc4-olh/arch/powerpc/kernel/sys_ppc32.c
@@ -429,7 +429,7 @@ long compat_sys_ipc(u32 call, u32 first,
 		return sys_shmdt(compat_ptr(ptr));
 	case SHMGET:
 		/* sign extend key_t */
-		return sys_shmget((int)first, second, third);
+		return sys_shmget((int)first, (int)second, third);
 	case SHMCTL:
 		/* sign extend shmid */
 		return compat_sys_shmctl((int)first, second, compat_ptr(ptr));
Does the ltp test fail on a standard kernel(where SHMMAX is 0x2000000), or
only on a SLES kernel (where SHMMAX is ULONG_MAX)?

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

Re: [PATCH] change compat shmget size arg to signed

From: Olaf Hering <hidden>
Date: 2006-02-23 23:27:17

 On Fri, Feb 24, Stephen Rothwell wrote:
Does the ltp test fail on a standard kernel(where SHMMAX is 0x2000000), or
only on a SLES kernel (where SHMMAX is ULONG_MAX)?
It fails with SLES9 and SLES10. SLES9 has 0x2000000 as default.

Re: [PATCH] change compat shmget size arg to signed

From: Stephen Rothwell <hidden>
Date: 2006-02-24 00:12:42

On Fri, 24 Feb 2006 00:27:17 +0100 Olaf Hering [off-list ref] wrote:
 On Fri, Feb 24, Stephen Rothwell wrote:
quoted
Does the ltp test fail on a standard kernel(where SHMMAX is 0x2000000), or
only on a SLES kernel (where SHMMAX is ULONG_MAX)?
It fails with SLES9 and SLES10. SLES9 has 0x2000000 as default.
So what was shm_ctlmax set to when the test was run.

I am trying to figure out why this test:

if (size < SHMMIN || size > shm_ctlmax)
                return -EINVAL;

Doesn't return -EINVAL for size == 0xffffffff if shm_ctlmax is 0x2000000?

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

Re: [PATCH] change compat shmget size arg to signed

From: Olaf Hering <hidden>
Date: 2006-03-06 19:38:17

 On Fri, Feb 24, Stephen Rothwell wrote:
On Fri, 24 Feb 2006 00:27:17 +0100 Olaf Hering [off-list ref] wrote:
quoted
 On Fri, Feb 24, Stephen Rothwell wrote:
quoted
Does the ltp test fail on a standard kernel(where SHMMAX is 0x2000000), or
only on a SLES kernel (where SHMMAX is ULONG_MAX)?
It fails with SLES9 and SLES10. SLES9 has 0x2000000 as default.
So what was shm_ctlmax set to when the test was run.

I am trying to figure out why this test:

if (size < SHMMIN || size > shm_ctlmax)
                return -EINVAL;

Doesn't return -EINVAL for size == 0xffffffff if shm_ctlmax is 0x2000000?
shm_ctlmax is a sysctrl, so it can have anything. The ltp test is
invalid. shmget02 dos not fail after:
echo $(( 0x2000000 )) > /proc/sys/kernel/shmmax 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help