On Fri, 13 Jun 2025 at 17:02, J. Neuschäfer <j.neuschae...@gmx.net> wrote: > > Although the emulated cacheflush syscall does nothing, it still needs to > return zero to indicate success. > > Signed-off-by: J. Neuschäfer <j.neuschae...@gmx.net> > --- > linux-user/arm/cpu_loop.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c > index > e8417d040691a04a3edc0f5508f047571beac8fa..33f63951a958a5a48ced2d1e187264d691e5c940 > 100644 > --- a/linux-user/arm/cpu_loop.c > +++ b/linux-user/arm/cpu_loop.c > @@ -363,6 +363,7 @@ void cpu_loop(CPUARMState *env) > switch (n) { > case ARM_NR_cacheflush: > /* nop */ > + env->regs[0] = 0; > break; > case ARM_NR_set_tls: > cpu_set_tls(env, env->regs[0]);
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> and queued to target-arm.next. Interesting that nobody's noticed this in all these years... (If we were really enthusiastic we could make it fail for the "end < start || flags" condition the kernel tests, but that seems unnecessary. The kernel also checks for access permissions, which would be harder.) thanks -- PMM