linux/arch/arm
Nicolas Pitre 68d9102f76 [ARM] 2865/2: fix fadvise64_64 syscall argument passing
Patch from Nicolas Pitre

The prototype for sys_fadvise64_64() is:
    long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice)
The argument list is therefore as follows on legacy ABI:
	fd: type int (r0)
	offset: type long long (r1-r2)
	len: type long long (r3-sp[0])
	advice: type int (sp[4])
With EABI this becomes:
	fd: type int (r0)
	offset: type long long (r2-r3)
	len: type long long (sp[0]-sp[4])
	advice: type int (sp[8])
Not only do we have ABI differences here, but the EABI version requires
one additional word on the syscall stack.
To avoid the ABI mismatch and the extra stack space required with EABI
this syscall is now defined with a different argument ordering
on ARM as follows:
    long sys_arm_fadvise64_64(int fd, int advice, loff_t offset, loff_t len)
This gives us the following ABI independent argument distribution:
	fd: type int (r0)
	advice: type int (r1)
	offset: type long long (r2-r3)
	len: type long long (sp[0]-sp[4])
Now, since the syscall entry code takes care of 5 registers only by
default including the store of r4 to the stack, we need a wrapper to
store r5 to the stack as well.  Because that wrapper was missing and was
always required this means that sys_fadvise64_64 never worked on ARM and
therefore we can safely reuse its syscall number for our new
sys_arm_fadvise64_64 interface.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-09-01 12:37:13 +01:00
..
boot [PATCH] ARM: 2816/1: Shark: boot kernel images bigger than 1 MB 2005-07-17 20:12:08 +01:00
common [ARM] 2868/1: Include linux/cpumask.h in arch/arm/common/gic.c 2005-08-31 21:45:14 +01:00
configs [PATCH] ARM: 2818/1: BAST - Use platform device for SuperIO 16550s 2005-07-18 10:24:32 +01:00
kernel [ARM] 2865/2: fix fadvise64_64 syscall argument passing 2005-09-01 12:37:13 +01:00
lib [ARM SMP] Only enable V6K instructions on V6 MP core CPUs 2005-08-10 14:41:45 +01:00
mach-aaec2000 [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-clps711x [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-clps7500 [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-ebsa110 [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-epxa10db [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-footbridge [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-h720x [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-imx [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-integrator [ARM SMP] Ensure secondary CPUs see their pen release 2005-07-29 16:36:48 +01:00
mach-iop3xx [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-ixp4xx [ARM] 2836/1: Cleanup IXP4xx GPIO code 2005-08-29 22:46:30 +01:00
mach-ixp2000 [PATCH] ARM: 2793/1: platform serial support for ixp2000 2005-07-10 19:44:53 +01:00
mach-l7200 [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-lh7a40x [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-omap1 [PATCH] ARM: remove linux/version.h include from arch/arm 2005-07-11 10:17:06 +01:00
mach-pxa [PATCH] ARM: Fix non-standard PXA io_pg_offst initialisers 2005-07-04 10:44:34 +01:00
mach-rpc [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mach-s3c2410 [ARM] 2856/1: S3C2440 - show DVS status at startup 2005-08-29 22:46:31 +01:00
mach-sa1100 [MFD] Add SA11x0 MCP platform device support 2005-08-18 10:10:46 +01:00
mach-shark [PATCH] ARM: 2815/1: Shark: new defconfig, fixes with __io and serial ports 2005-07-16 17:17:18 +01:00
mach-versatile [PATCH] ARM: Remove machine description macros 2005-07-03 17:38:58 +01:00
mm [ARM] 2867/2: unaligned ldrd/strd fixups 2005-08-31 21:22:20 +01:00
nwfpe [PATCH] qualifiers in return types - easy cases 2005-08-23 18:43:45 -07:00
oprofile [PATCH] ARM: 2838/1: Fix arm oprofile backtrace warning 2005-08-04 15:06:59 +01:00
plat-omap [PATCH] ARM: remove linux/version.h include from arch/arm 2005-07-11 10:17:06 +01:00
tools [PATCH] ARM: Update mach-types 2005-06-27 14:49:10 +01:00
vfp [PATCH] ARM: 2841/1: Fix VFP +/-0 case for doubles addition 2005-08-03 19:53:25 +01:00
Kconfig Merge HEAD from master.kernel.org:/home/rmk/linux-2.6-arm.git 2005-08-29 10:35:43 -07:00
Kconfig.debug Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [PATCH] ARM: 2802/1: OMAP update 8/11: Update OMAP arch files 2005-07-10 19:58:17 +01:00