aboutsummaryrefslogtreecommitdiff
path: root/semihosting/syscalls.c
diff options
context:
space:
mode:
authorNikita Ivanov <nivanov@cloudlinux.com>2022-10-23 12:04:22 +0300
committerThomas Huth <thuth@redhat.com>2023-01-09 13:50:47 +0100
commit37b0b24e933c18269dddbf6b83f91823cacf8105 (patch)
treeb36ac8d45a9e188604e44998974d27cf6185e0f3 /semihosting/syscalls.c
parent8b6aa69365ca6e9bbc3bf557a6ccc5ed2b468bec (diff)
error handling: Use RETRY_ON_EINTR() macro where applicable
There is a defined RETRY_ON_EINTR() macro in qemu/osdep.h which handles the same while loop. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/415 Signed-off-by: Nikita Ivanov <nivanov@cloudlinux.com> Message-Id: <20221023090422.242617-3-nivanov@cloudlinux.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> [thuth: Dropped the hunk that changed socket_accept() in libqtest.c] Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'semihosting/syscalls.c')
-rw-r--r--semihosting/syscalls.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/semihosting/syscalls.c b/semihosting/syscalls.c
index 508a0ad88c..5893c760c5 100644
--- a/semihosting/syscalls.c
+++ b/semihosting/syscalls.c
@@ -317,9 +317,7 @@ static void host_read(CPUState *cs, gdb_syscall_complete_cb complete,
complete(cs, -1, EFAULT);
return;
}
- do {
- ret = read(gf->hostfd, ptr, len);
- } while (ret == -1 && errno == EINTR);
+ ret = RETRY_ON_EINTR(read(gf->hostfd, ptr, len));
if (ret == -1) {
complete(cs, -1, errno);
unlock_user(ptr, buf, 0);