I'm getting the following failure on my Xscale (ARM) board

shmt09      1  PASS  :  sbrk, sbrk, shmget, shmat
shmt09      2  PASS  :  sbrk, shmat
shmat: Invalid argument
shmt09      3  FAIL  :  Error: shmat Failed, shmid = 1409024, errno = 29

The following is the suspect code (around line 160):

#ifdef __mips__
    vp = (void *)((char *)sbrk(0) + 256 * K_1);
#elif  defined(__powerpc__) || defined(__powerpc64__)
    vp = (void *)((char *)sbrk(0) + getpagesize());
#else
    /* SHM_RND rounds vp on the nearest multiple of SHMLBA */
    vp = (void *)SHMALIGN((char *)sbrk(0) + 1);
 #endif

 c3 = (char *)shmat(shmid, vp, SHM_RND);

It looks like vp is providing an invalid argument to shmat.

I ran the test with vp set to the following and added printf's to
return "vp" and sbrk(0) values:

Debug Case 1:
vp = (void *)SHMALIGN((char *)sbrk(0) + 1);
        The variable "vp" returns: vp =  0x1d000
        the function sbrk() returns: sbrk(0) 0x1c17f

I then changed the vp variable to (added __arm__ to the __mips__
section above) and the test passes:
Debug Case 2:
vp = (void *)((char *)sbrk(0) + 256 * K_1);
        The variable "vp" returns: vp =  0x5c17f
        the function sbrk() returns: brk(0) 0x1c17f

I do not understand why Debug Case 2: (default code in ltp) fails.
The shared mem current page is 0x1c17f and vp is 0x1d000 this seems
correct or at least no different than Debug Case 2 were vp is a page
or more higher in address than what sbrk(0) returns.

Regards,
Shane

System:
Xscale PXA270
64 MB Ram
Kernel 2.6.23.16
libc-2.5

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to