diff options
author | cognet <cognet@FreeBSD.org> | 2007-07-31 17:09:05 +0000 |
---|---|---|
committer | cognet <cognet@FreeBSD.org> | 2007-07-31 17:09:05 +0000 |
commit | 99641742c6c190c323b98343e5a497998807e7bf (patch) | |
tree | 42cd7c6664cca751be6820853729ae3c6662c268 /sys/arm | |
parent | ce4c62aa34c29ce4db2699aaf8a9883661fc0781 (diff) | |
download | FreeBSD-src-99641742c6c190c323b98343e5a497998807e7bf.zip FreeBSD-src-99641742c6c190c323b98343e5a497998807e7bf.tar.gz |
MFppc:
revision 1.66
date: 2007/07/31 06:23:26; author: marcel; state: Exp; lines: +2 -2
Fix backward compatibility of the "old" (i.e. FreeBSD6) lseek
syscall. It was broken when a new lseek syscall was introduced.
The problem is that we need to swap the 32-bit td_retval values
for the __syscall indirect syscall when the actual syscall has
a 32-bit return value. Hence, we need to exclude lseek(2). And
this means the "old" lseek(2) as well -- which we didn't.
Based on a patch from: grehan@
Approved by: re (blanket)
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/arm/trap.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/arm/arm/trap.c b/sys/arm/arm/trap.c index 22b2a02..6e6d43d 100644 --- a/sys/arm/arm/trap.c +++ b/sys/arm/arm/trap.c @@ -943,7 +943,7 @@ syscall(struct thread *td, trapframe_t *frame, u_int32_t insn) case 0: #ifdef __ARMEB__ if ((insn & 0x000fffff) == SYS___syscall && - (code != SYS_lseek)) { + code != SYS_freebsd6_lseek && code != SYS_lseek) { /* * 64-bit return, 32-bit syscall. Fixup byte order */ |