Message ID | 1328561133-5485-1-git-send-email-agraf@suse.de |
---|---|
State | New |
Headers | show |
On 6 February 2012 20:45, Alexander Graf <agraf@suse.de> wrote: > Fallocate gets off_t parameters passed in, so we should also read them out > accordingly. > > Signed-off-by: Alexander Graf <agraf@suse.de> > --- > linux-user/syscall.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index ee8899e..ca63594 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -8237,7 +8237,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > #endif /* CONFIG_EVENTFD */ > #if defined(CONFIG_FALLOCATE) && defined(TARGET_NR_fallocate) > case TARGET_NR_fallocate: > - ret = get_errno(fallocate(arg1, arg2, arg3, arg4)); > + ret = get_errno(fallocate(arg1, arg2, target_offset64(arg3, arg4), > + target_offset64(arg5, arg6))); > break; > #endif > #if defined(CONFIG_SYNC_FILE_RANGE) This needs to be guarded with a TARGET_ABI_BITS == 32 conditional: 64 bit guests want the original version. -- PMM
On 06.02.2012, at 22:03, Peter Maydell wrote: > On 6 February 2012 20:45, Alexander Graf <agraf@suse.de> wrote: >> Fallocate gets off_t parameters passed in, so we should also read them out >> accordingly. >> >> Signed-off-by: Alexander Graf <agraf@suse.de> >> --- >> linux-user/syscall.c | 3 ++- >> 1 files changed, 2 insertions(+), 1 deletions(-) >> >> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >> index ee8899e..ca63594 100644 >> --- a/linux-user/syscall.c >> +++ b/linux-user/syscall.c >> @@ -8237,7 +8237,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >> #endif /* CONFIG_EVENTFD */ >> #if defined(CONFIG_FALLOCATE) && defined(TARGET_NR_fallocate) >> case TARGET_NR_fallocate: >> - ret = get_errno(fallocate(arg1, arg2, arg3, arg4)); >> + ret = get_errno(fallocate(arg1, arg2, target_offset64(arg3, arg4), >> + target_offset64(arg5, arg6))); >> break; >> #endif >> #if defined(CONFIG_SYNC_FILE_RANGE) > > This needs to be guarded with a TARGET_ABI_BITS == 32 conditional: > 64 bit guests want the original version. Good point. Thanks! Alex
diff --git a/linux-user/syscall.c b/linux-user/syscall.c index ee8899e..ca63594 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -8237,7 +8237,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, #endif /* CONFIG_EVENTFD */ #if defined(CONFIG_FALLOCATE) && defined(TARGET_NR_fallocate) case TARGET_NR_fallocate: - ret = get_errno(fallocate(arg1, arg2, arg3, arg4)); + ret = get_errno(fallocate(arg1, arg2, target_offset64(arg3, arg4), + target_offset64(arg5, arg6))); break; #endif #if defined(CONFIG_SYNC_FILE_RANGE)
Fallocate gets off_t parameters passed in, so we should also read them out accordingly. Signed-off-by: Alexander Graf <agraf@suse.de> --- linux-user/syscall.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)