[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/7] Pass select() arguments directly to do_select()
From: |
Timothy Pearson |
Subject: |
[Qemu-devel] [PATCH 3/7] Pass select() arguments directly to do_select() on x86 platforms |
Date: |
Sat, 18 Jun 2016 19:15:21 -0500 (CDT) |
This matches the calling conventions in the Linux kernel and
resolves select() hangs on i386/x86_64 guests.
Signed-off-by: Timothy Pearson <address@hidden>
---
linux-user/syscall.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 2968b57..644a490 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4785,6 +4785,7 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
void *argptr;
ie = ioctl_entries;
+
for(;;) {
if (ie->target_cmd == 0) {
gemu_log("Unsupported ioctl: cmd=0x%04lx\n", (long)cmd);
@@ -7899,7 +7900,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
break;
#if defined(TARGET_NR_select)
case TARGET_NR_select:
-#if defined(TARGET_S390X) || defined(TARGET_ALPHA)
+#if defined(TARGET_S390X) || defined(TARGET_ALPHA) || defined(TARGET_I386) ||
defined(TARGET_X86_64)
ret = do_select(arg1, arg2, arg3, arg4, arg5);
#else
{
--
2.1.4