The kernel fails madvise() with ENOMEM when it is given a partially or a
fully unmapped address range. qemu-user differed from this and returned
0 instead.

Patch 1 makes target_madvise() check the range with page_check_range()
and potentially fail with ENOMEM while still giving precedence to
advice specific errors.

Patch 2 adds test cases, calling madvise() with partially and fully
unmapped address ranges.

Roi Klevansky (2):
  linux-user: return ENOMEM from madvise on unmapped ranges
  tests/tcg: add linux-user test for madvise returning ENOMEM

 linux-user/mmap.c                         |  7 +++-
 tests/tcg/multiarch/linux/linux-madvise.c | 43 +++++++++++++++++++++++
 2 files changed, 49 insertions(+), 1 deletion(-)

-- 
2.55.0


Reply via email to