kernel_optimize_test/arch/arm
Al Viro fa1b4f91d6 [ARM] safer handling of syscall table padding
ARM entry-common.S needs to know syscall table size; in itself that would
not be a problem, but there's an additional constraint - some of the
instructions using it want a constant that would be a multiple of 4.
So we have to pad syscall table with sys_ni_syscall and that's where
the trouble begins.  .rept pseudo-op wants a constant expression for
number of repetitions and subtraction of two labels (before and after
syscall table) doesn't always get simplified to constant early enough
for .rept.  If labels end up in different frags, we lose.  And while
the frag size is large enough (slightly below 4Kb), the syscall table
is about 1/3 of that.  We used to get away with that, but the recent
changes had been enough to trigger the breakage.

Proper fix is simple: have a macro (CALL(x)) to populate the table
instead of using explicit .long x and the first time we include calls.S
have it defined to .equ NR_syscalls,NR_syscalls+1.  Then we can find
the proper amount of padding on the first inclusion simply by looking
at NR_syscalls at that time.  And that will be constant, no matter what.

Moreover, the same trick kills the need of having an estimate of padded
NR_syscalls - it will be calculated for free at the same time.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-19 12:57:01 +00:00
..
boot [ARM] 3272/1: fix kernel decompressor crash 2006-01-18 22:38:51 +00:00
common Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-01-14 19:43:21 -08:00
configs [ARM] Remove CONFIG_BROKEN=y from defconfigs 2006-01-19 12:32:54 +00:00
kernel [ARM] safer handling of syscall table padding 2006-01-19 12:57:01 +00:00
lib [ARM] 3104/1: ARM EABI: new helper function names 2006-01-14 16:18:29 +00:00
mach-aaec2000 [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-at91rm9200 [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-clps711x [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-clps7500 [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-ebsa110 [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-footbridge [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-h720x [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-imx [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-integrator Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-01-14 19:43:21 -08:00
mach-iop3xx [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-ixp4xx [ARM] 3281/1: ixp4xx: export ixp4xx_exp_bus_size for modules 2006-01-18 22:46:43 +00:00
mach-ixp2000 [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-l7200 [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-lh7a40x [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-omap1 ARM: OMAP: 4/4 Fix clock framework to use clk_enable/disable misc 2006-01-17 15:33:51 -08:00
mach-omap2 ARM: OMAP: 4/4 Fix clock framework to use clk_enable/disable misc 2006-01-17 15:33:51 -08:00
mach-pxa [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-realview [ARM] Remove useless 'default n' from Kconfig files 2006-01-13 21:09:17 +00:00
mach-rpc [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-s3c2410 [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-sa1100 [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-shark [ARM] 3260/1: remove phys_ram from struct machine_desc (part 2) 2006-01-13 20:51:52 +00:00
mach-versatile [ARM] Separate VIC (vectored interrupt controller) support from Versatile 2006-01-13 21:30:48 +00:00
mm [ARM] 3209/1: Configurable DMA-consistent memory region 2006-01-12 16:12:21 +00:00
nwfpe [ARM] 3111/2: old ABI compat: adjust NWFPE to be operational within an EABI kernel 2006-01-14 16:36:50 +00:00
oprofile [PATCH] mm: kill check_user_page_readable 2005-10-29 21:40:41 -07:00
plat-omap ARM: OMAP: 4/4 Fix clock framework to use clk_enable/disable misc 2006-01-17 15:33:51 -08:00
tools [ARM] Update mach-types 2006-01-09 12:57:05 +00:00
vfp kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
Kconfig Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-01-14 19:43:21 -08:00
Kconfig.debug [ARM] Fix typo in arch/arm/Kconfig.debug 2005-09-09 15:57:17 +01:00
Makefile [ARM] 3107/3: ARM EABI: last bits to configure it 2006-01-14 16:33:50 +00:00