aboutsummaryrefslogtreecommitdiff
path: root/linux-user/syscall.c
diff options
context:
space:
mode:
authorLena Djokic <Lena.Djokic@rt-rk.com>2016-11-24 17:08:56 +0100
committerLaurent Vivier <laurent@vivier.eu>2017-02-14 17:18:03 +0100
commit77c6850fd7412289122bc21f3b01310c014d98d4 (patch)
tree14a83909345aea8aee0874315b309add73e08d29 /linux-user/syscall.c
parentfea243e90a3647d8616317a5834497fa30a63700 (diff)
linux-user: Fix readahead
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>
Diffstat (limited to 'linux-user/syscall.c')
-rw-r--r--linux-user/syscall.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index fccd6312ad..3e88dd129c 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -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