]> git.proxmox.com Git - qemu.git/commitdiff
linux-user: Fix sync_file_range on 32bit mips
authorRiku Voipio <riku.voipio@iki.fi>
Mon, 20 Jun 2011 13:24:39 +0000 (16:24 +0300)
committerRiku Voipio <riku.voipio@iki.fi>
Tue, 21 Jun 2011 17:30:10 +0000 (20:30 +0300)
As noticed while looking at "Bump do_syscall() up to 8 syscall arguments"
patch, sync_file_range uses a pad argument on 32bit mips. Deal with it
by reading the correct arguments when on mips.

Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
linux-user/syscall.c

index 9e149375e431107ea96e8837f5ca5f94c9c21bd7..fed7a8fe0f25d7957852f2d3cdc1906b5abd59fc 100644 (file)
@@ -7862,8 +7862,13 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
 #if defined(TARGET_NR_sync_file_range)
     case TARGET_NR_sync_file_range:
 #if TARGET_ABI_BITS == 32
+#if defined(TARGET_MIPS)
+        ret = get_errno(sync_file_range(arg1, target_offset64(arg3, arg4),
+                                        target_offset64(arg5, arg6), arg7));
+#else
         ret = get_errno(sync_file_range(arg1, target_offset64(arg2, arg3),
                                         target_offset64(arg4, arg5), arg6));
+#endif /* !TARGET_MIPS */
 #else
         ret = get_errno(sync_file_range(arg1, arg2, arg3, arg4));
 #endif