qemu/linux-user
Thomas Weißschuh f443a26cc6 linux-user: Don't require PROT_READ for mincore
The kernel does not require PROT_READ for addresses passed to mincore.
For example the fincore(1) tool from util-linux uses PROT_NONE and
currently does not work under qemu-user.

Example (with fincore(1) from util-linux 2.38):

$ fincore /proc/self/exe
RES PAGES  SIZE FILE
24K     6 22.1K /proc/self/exe

$ qemu-x86_64 /usr/bin/fincore /proc/self/exe
fincore: failed to do mincore: /proc/self/exe: Cannot allocate memory

With this patch:

$ ./build/qemu-x86_64 /usr/bin/fincore /proc/self/exe
RES PAGES  SIZE FILE
24K     6 22.1K /proc/self/exe

Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20230422100314.1650-3-thomas@t-8ch.de>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2023-05-17 07:20:29 +02:00
..
aarch64 linux-user: move target_flat.h to target subdirs 2023-02-03 22:55:12 +01:00
alpha linux-user: Add translation for argument of msync() 2023-03-10 20:45:47 +01:00
arm include/exec: Change reserved_va semantics to last byte 2023-03-28 15:23:10 -07:00
cris linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
generic linux-user: Add translation for argument of msync() 2023-03-10 20:45:47 +01:00
hexagon linux-user/hexagon: fix signal context save & restore 2023-01-05 09:19:02 -08:00
hppa linux-user: Add translation for argument of msync() 2023-03-10 20:45:47 +01:00
i386 linux-user: fix bug about incorrect base addresss of gdt on i386 and x86_64 2023-03-10 20:50:11 +01:00
include linux-user: Implment host/ppc/host-signal.h 2023-01-23 14:39:48 -10:00
loongarch64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
m68k linux-user: move target_flat.h to target subdirs 2023-02-03 22:55:12 +01:00
microblaze linux-user/microblaze: Handle privileged exception 2023-02-21 08:44:13 -10:00
mips linux-user/mips: Use P5600 as default CPU to run NaN2008 ELF binaries 2023-03-30 15:03:28 +02:00
mips64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
nios2 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
openrisc linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
ppc linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
riscv linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
s390x linux-user/s390x: Save/restore fpc when handling a signal 2022-09-27 13:19:05 +02:00
sh4 linux-user: move target_flat.h to target subdirs 2023-02-03 22:55:12 +01:00
sparc linux-user/sparc: Handle tag overflow traps 2023-03-10 20:45:47 +01:00
x86_64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
xtensa linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
cpu_loop-common.h linux-user: Add guest memory layout to exception dump 2022-10-25 09:20:40 +02:00
elfload.c Revert "linux-user/arm: Take more care allocating commpage" 2023-04-04 07:48:27 -07:00
errnos.c.inc linux-user: Simplify host <-> target errno conversion using macros 2021-07-12 21:53:35 +02:00
exit.c *: Add missing includes of qemu/plugin.h 2023-03-22 15:06:57 +00:00
fd-trans.c linux-user: handle netlink flag NLA_F_NESTED 2023-03-10 20:45:47 +01:00
fd-trans.h linux-user: fix timerfd read endianness conversion 2023-03-10 20:42:00 +01:00
flat.h linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
flatload.c linux-user: Pass last not end to probe_guest_base 2023-03-28 15:23:10 -07:00
ioctls.h linux-user: remove conditionals for many fs.h ioctls 2022-10-21 17:46:19 +02:00
linux_loop.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
linuxload.c linux-user: Clean up arg_start/arg_end confusion 2022-05-23 08:15:19 +02:00
loader.h linux-user: Split loader-related prototypes into loader.h 2021-09-13 20:35:44 +02:00
main.c linux-user/main: Use list_cpus() instead of cpu_list() 2023-05-17 07:20:29 +02:00
meson.build accel/tcg: Add debuginfo support 2023-01-16 10:14:12 -10:00
mmap.c include/exec: Change reserved_va semantics to last byte 2023-03-28 15:23:10 -07:00
qemu.h linux-user: Add new flag VERIFY_NONE 2023-05-17 07:20:29 +02:00
semihost.c semihosting: Remove qemu_semihosting_console_outs 2022-06-28 04:41:20 +05:30
signal-common.h linux-user: Add missing signals in strace output 2022-09-27 09:29:33 +02:00
signal.c gdbstub: move chunks of user code into own files 2023-03-07 20:44:04 +00:00
socket.h Supply missing header guards 2019-06-12 13:20:21 +02:00
strace.c linux-user: Emulate CLONE_PIDFD flag in clone() 2023-03-10 20:45:47 +01:00
strace.h linux-user: Have do_syscall() use CPUArchState* instead of void* 2022-05-23 22:47:19 +02:00
strace.list linux-user: Add translation for argument of msync() 2023-03-10 20:45:47 +01:00
syscall_defs.h linux-user/sparc: Don't use 16-bit UIDs on SPARC V9 2023-03-30 15:03:23 +02:00
syscall_types.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
syscall.c linux-user: Don't require PROT_READ for mincore 2023-05-17 07:20:29 +02:00
thunk.c linux-user: Move thunk.c from top-level 2021-12-20 10:12:29 -08:00
trace-events linux-user: Rename user_force_sig tracepoint to match function name 2022-01-18 12:41:42 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uaccess.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.c linux-user: Remove pointless CPU{ARCH}State casts 2022-05-23 22:47:20 +02:00
uname.h linux-user: Have do_syscall() use CPUArchState* instead of void* 2022-05-23 22:47:19 +02:00
user-internals.h linux-user: Pass last not end to probe_guest_base 2023-03-28 15:23:10 -07:00
user-mmap.h linux-user: Add partial support for MADV_DONTNEED 2022-06-24 10:00:00 +02:00
vm86.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00