OSDN Git Service

linux-user: Fix readahead
authorLena Djokic <Lena.Djokic@rt-rk.com>
Thu, 24 Nov 2016 16:08:56 +0000 (17:08 +0100)
committerLaurent Vivier <laurent@vivier.eu>
Tue, 14 Feb 2017 16:18:03 +0000 (17:18 +0100)
Calculation of 64-bit offset was not correct for all cases.

Signed-off-by: Lena Djokic <Lena.Djokic@rt-rk.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/syscall.c

index fccd631..3e88dd1 100644 (file)
@@ -11228,7 +11228,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
             arg3 = arg4;
             arg4 = arg5;
         }
-        ret = get_errno(readahead(arg1, ((off64_t)arg3 << 32) | arg2, arg4));
+        ret = get_errno(readahead(arg1, target_offset64(arg2, arg3) , arg4));
 #else
         ret = get_errno(readahead(arg1, arg2, arg3));
 #endif