[lsb-discuss] msync() and recent Linux kernels

Jeff Licquia jeff at licquia.org
Sun Oct 15 20:03:06 PDT 2006


There seems to be an issue with the LSB runtime tests and Linux kernels
with versions of 2.6.17 and later: specifically, test 
/tset/LSB.os/mfiles/msync_P/T.msync_p 7.

It seems that the msync() syscall was worked over in 2.6.17.  There were
several commits about the March 2006 time frame in that area.  I'm
trying to verify the actual commit that broke things, but there's one
comment about msync failing to sync when part of the range is invalid
which looks suspicious.

That commit is here:

http://kernel.org/git/?p=linux/kernel/git/stable/linux-2.6.17.y.git;a=commit;h=676758bdb7bfca8413a85203921746f446e237be

A search for msync() in the git log for 2.6.17:

http://kernel.org/git/?p=linux%2Fkernel%2Fgit%2Fstable%2Flinux-2.6.17.y.git&a=search&h=HEAD&s=msync

I've looked up the relevant standard, which appears to be SUSv3:

> ERRORS
>         The msync() function shall fail if:

[...]

>         [ENOMEM]
>                 The addresses in the range starting at addr and
>                 continuing for len bytes are outside the range allowed
>                 for the address space of a process or specify one or
>                 more pages that are not mapped.

This would seem to put the blame in the kernel.  But before I wade into
the fever swamps of the kernel mailing list, I'd like to be a little
more certain.




More information about the lsb-discuss mailing list