qemu-e2k/linux-user
Peter Maydell 0c1592d935 linux-user: Fix large seeks by 32 bit guest on 64 bit host
When emulating a 32 bit Linux user-mode program on a 64 bit target
we implement the llseek syscall in terms of lseek. Correct a bug
which meant we were silently casting the result of host lseek()
to a 32 bit integer as it passed through get_errno() and thus
throwing away the top half.

We also don't try to store the result back to userspace unless
the seek succeeded; this matches the kernel behaviour.

Thanks to Eoghan Sherry for identifying the problem and suggesting
a solution.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2011-03-06 19:06:27 +01:00
..
alpha
arm linux-user/arm: fix compilation failures using softfloat's struct types 2011-02-10 20:18:36 +01:00
cris
i386
m68k
microblaze
mips
mips64
mipsn32
ppc
sh4
sparc
sparc64
x86_64
cpu-uname.c
cpu-uname.h
elfload.c linux-user: correct core dump format 2011-02-17 11:46:34 +02:00
errno_defs.h
flat.h
flatload.c
ioctls.h linux-user: fix for loopmount ioctl 2011-02-09 10:33:54 +02:00
linux_loop.h
linuxload.c
m68k-sim.c
main.c
mmap.c linux-user: fix compile failure if !CONFIG_USE_GUEST_BASE 2011-03-03 23:33:45 +01:00
qemu-types.h
qemu.h
signal.c linux-user/arm: fix compilation failures using softfloat's struct types 2011-02-10 20:18:36 +01:00
socket.h
strace.c linux-user: in linux-user/strace.c, tswap() is useless 2011-02-17 11:46:34 +02:00
strace.list linux-user: add rmdir() strace 2011-02-17 11:46:34 +02:00
syscall_defs.h linux-user: Support the epoll syscalls 2011-02-17 11:46:34 +02:00
syscall_types.h
syscall.c linux-user: Fix large seeks by 32 bit guest on 64 bit host 2011-03-06 19:06:27 +01:00
target_flat.h
uaccess.c
vm86.c