linux-user: fix clock_nanosleep()
commit8ec68a0a873d24d3f81e0f34892ec4b8b1215ccf
authorLaurent Vivier <laurent@vivier.eu>
Fri, 24 Jul 2020 06:45:05 +0000 (24 07:45 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Mon, 27 Jul 2020 08:41:41 +0000 (27 09:41 +0100)
treef189cbd4b18d6badc9c49313f35d16e50b06484b
parent4c5aeb12387f05348d3ea25c138c450005086ecd
linux-user: fix clock_nanosleep()

If the call is interrupted by a signal handler, it fails with error EINTR
and if "remain" is not NULL and "flags" is not TIMER_ABSTIME, it returns
the remaining unslept time in "remain".

Update linux-user to not overwrite the "remain" structure if there is no
error.

Found with "make check-tcg", linux-test fails on nanosleep test:

  TEST    linux-test on x86_64
.../tests/tcg/multiarch/linux-test.c:242: nanosleep

Reported-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200722174612.2917566-2-laurent@vivier.eu>
Message-Id: <20200724064509.331-13-alex.bennee@linaro.org>
linux-user/syscall.c