linux(4): Quiesce warning about madvise(..., -1)

This API misuse is intended to produce an error value to detect certain
bogus stub implementations of MADV_WIPEONFORK.  We don't need to log a
warning about it.

Example:
https://boringssl.googlesource.com/boringssl/+/ad5582985cc6b89d0e7caf0d9cc7e301de61cf66%5E%21/

Reviewed by:	emaste, trasz
Differential Revision:	https://reviews.freebsd.org/D27017
This commit is contained in:
Conrad Meyer 2020-10-30 19:02:59 +00:00
parent e6790841f7
commit ae9cafd919
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=367182

View File

@ -394,6 +394,16 @@ linux_madvise_common(struct thread *td, uintptr_t addr, size_t len, int behav)
case LINUX_MADV_SOFT_OFFLINE:
linux_msg(curthread, "unsupported madvise MADV_SOFT_OFFLINE");
return (EINVAL);
case -1:
/*
* -1 is sometimes used as a dummy value to detect simplistic
* madvise(2) stub implementations. This safeguard is used by
* BoringSSL, for example, before assuming MADV_WIPEONFORK is
* safe to use. Don't produce an "unsupported" error message
* for this special dummy value, which is unlikely to be used
* by any new advisory behavior feature.
*/
return (EINVAL);
default:
linux_msg(curthread, "unsupported madvise behav %d", behav);
return (EINVAL);