diff mbox

[v2,5/7] linux-user: Fix readahead

Message ID 1480003738-8754-6-git-send-email-Lena.Djokic@rt-rk.com
State New
Headers show

Commit Message

Lena Djokic Nov. 24, 2016, 4:08 p.m. UTC
Calculation of 64-bit offset was not correct for all cases.

Signed-off-by: Lena Djokic <Lena.Djokic@rt-rk.com>
---
 linux-user/syscall.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Peter Maydell Dec. 16, 2016, 2:27 p.m. UTC | #1
On 24 November 2016 at 16:08, Lena Djokic <Lena.Djokic@rt-rk.com> wrote:
> Calculation of 64-bit offset was not correct for all cases.
>
> Signed-off-by: Lena Djokic <Lena.Djokic@rt-rk.com>
> ---
>  linux-user/syscall.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 1b59a71..61c4126 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -11296,7 +11296,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

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM
Riku Voipio Jan. 5, 2017, 12:14 p.m. UTC | #2
On Thu, Nov 24, 2016 at 05:08:56PM +0100, Lena Djokic wrote:
> Calculation of 64-bit offset was not correct for all cases.

Thanks, applied to linux-user
 
> Signed-off-by: Lena Djokic <Lena.Djokic@rt-rk.com>
> ---
>  linux-user/syscall.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 1b59a71..61c4126 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -11296,7 +11296,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
> -- 
> 2.7.4
>
diff mbox

Patch

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1b59a71..61c4126 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -11296,7 +11296,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