aha/include/asm-arm
Simon Horman 6672f76a5a kdump/kexec: calculate note size at compile time
Currently the size of the per-cpu region reserved to save crash notes is
set by the per-architecture value MAX_NOTE_BYTES.  Which in turn is
currently set to 1024 on all supported architectures.

While testing ia64 I recently discovered that this value is in fact too
small.  The particular setup I was using actually needs 1172 bytes.  This
lead to very tedious failure mode where the tail of one elf note would
overwrite the head of another if they ended up being alocated sequentially
by kmalloc, which was often the case.

It seems to me that a far better approach is to caclculate the size that
the area needs to be.  This patch does just that.

If a simpler stop-gap patch for ia64 to be squeezed into 2.6.21(.X) is
needed then this should be as easy as making MAX_NOTE_BYTES larger in
arch/asm-ia64/kexec.h.  Perhaps 2048 would be a good choice.  However, I
think that the approach in this patch is a much more robust idea.

Acked-by:  Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 11:15:07 -07:00
..
arch-aaec2000 [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-at91 [ARM] 4352/1: AT91: Platform data for LCD and AC97. 2007-05-03 14:10:22 +01:00
arch-cl7500 [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-clps711x [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-ebsa110 [ARM] EBSA110: Add readsw/readsl/writesw/writesl 2007-04-21 20:34:37 +01:00
arch-ebsa285 [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-ep93xx [ARM] Merge remaining IOP code 2007-02-20 10:52:43 +00:00
arch-h720x [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-imx Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-05-06 13:20:10 -07:00
arch-integrator [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-iop13xx Merge branches 'arm-mm', 'at91', 'clkevts', 'imx', 'iop', 'misc', 'netx', 'ns9xxx', 'omap', 'pxa', 'rpc', 's3c' and 'sa1100' into devel 2007-05-06 20:57:51 +01:00
arch-iop32x Merge branches 'arm-mm', 'at91', 'clkevts', 'imx', 'iop', 'misc', 'netx', 'ns9xxx', 'omap', 'pxa', 'rpc', 's3c' and 'sa1100' into devel 2007-05-06 20:57:51 +01:00
arch-iop33x Merge branches 'arm-mm', 'at91', 'clkevts', 'imx', 'iop', 'misc', 'netx', 'ns9xxx', 'omap', 'pxa', 'rpc', 's3c' and 'sa1100' into devel 2007-05-06 20:57:51 +01:00
arch-ixp4xx Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-05-06 13:20:10 -07:00
arch-ixp23xx [ARM] mm 10: allow memory type to be specified with ioremap 2007-05-05 20:59:27 +01:00
arch-ixp2000 [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-l7200 [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-lh7a40x [ARM] 4248/1: lh7a40x: fix missing definitions for get_irqnr_preamble 2007-03-08 13:33:57 +00:00
arch-netx [ARM] 4329/1: fix position of NETX_SYSTEM_REG 2007-05-03 20:22:49 +01:00
arch-ns9xxx [ARM] 4301/1: add mach type cc9p9360js 2007-04-21 20:52:30 +01:00
arch-omap [PATCH] gpio_direction_output() needs an initial value 2007-03-16 19:25:04 -07:00
arch-pnx4008 [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-pxa Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-05-06 13:20:10 -07:00
arch-realview [ARM] Merge remaining IOP code 2007-02-20 10:52:43 +00:00
arch-rpc [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-s3c2410 [ARM] 4360/1: S3C24XX: regs-udc.h remove unused macro 2007-05-05 21:09:42 +01:00
arch-sa1100 [PATCH] gpio_direction_output() needs an initial value 2007-03-16 19:25:04 -07:00
arch-shark [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
arch-versatile [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user 2007-02-17 15:04:29 +00:00
hardware [ARM] iop: add missing parens in macro 2007-05-05 11:59:13 +01:00
mach Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-05-06 13:20:10 -07:00
plat-s3c24xx [ARM] 4325/1: S3C24XX: remove s3c24xx_board 2007-04-21 20:53:19 +01:00
.gitignore [ARM] 4216/1: add .gitignore entries for ARM specific files 2007-02-17 11:26:41 +00:00
a.out.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
assembler.h [ARM] Remove MODE_(SVC|IRQ|FIQ|USR) and DEFAULT_FIQ 2006-06-25 12:01:48 +01:00
atomic.h [ARM] 4264/1: ldrex/strex syntax errors with recent compilers 2007-03-15 20:39:16 +00:00
auxvec.h [PATCH] auxiliary vector cleanups 2005-09-07 16:57:21 -07:00
bitops.h [ARM] 3852/1: convert atomic bitops and __xchg over to raw_local_irq_{save,restore} 2006-09-25 10:34:03 +01:00
bug.h [ARM] 3983/2: remove unused argument to __bug() 2006-12-07 22:38:09 +00:00
bugs.h [ARM] nommu: adjust headers for !MMU ARM systems 2006-06-28 17:59:45 +01:00
byteorder.h [ARM] Fix byte order macros for Thumb 2006-06-19 15:35:36 +01:00
cache.h [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
cacheflush.h [ARM] Convert DMA cache handling to take const void * args 2007-02-08 14:49:44 +00:00
checksum.h [ARM] Improve csum_fold, cleanup csum_tcpudp_magic() 2007-02-06 16:46:46 +00:00
cnt32_to_63.h [ARM] 3978/1: macro to provide a 63-bit value from a 32-bit hardware counter 2006-12-07 16:06:45 +00:00
cpu-multi32.h [ARM] Unuse another Linux PTE bit 2006-12-13 14:34:43 +00:00
cpu-single.h [ARM] Unuse another Linux PTE bit 2006-12-13 14:34:43 +00:00
cpu.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
cputime.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
current.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
delay.h [ARM] 3346/1: Fix udelay() for HZ values different from 100 2006-03-21 22:06:07 +00:00
device.h [ARM] Add a reference from struct device to the dma bounce info 2007-02-12 10:28:24 +00:00
div64.h [NET]: div64_64 consolidate (rev3) 2007-04-25 22:23:33 -07:00
dma-mapping.h Merge AT91, EP93xx, General devel, PXA, S3C, V6+ and Xscale trees 2007-02-17 20:09:53 +00:00
dma.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
domain.h [ARM] 4127/1: Flush the prefetch buffer after changing the DACR 2007-02-08 14:49:18 +00:00
dyntick.h [ARM] 3692/1: ARM: coswitch irq handling to the generic implementation 2006-07-01 22:30:09 +01:00
ecard.h [ARM] ecard: Convert card type enum to a flag 2007-05-03 14:16:56 +01:00
elf.h [ARM] 4054/1: ep93xx: add HWCAP_CRUNCH 2006-12-18 00:14:54 +00:00
emergency-restart.h [PATCH] Add emergency_restart() 2005-07-26 14:35:41 -07:00
errno.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcntl.h [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
fiq.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
flat.h [ARM] 4074/1: Flat loader stack alignment 2006-12-30 17:05:08 +00:00
floppy.h [PATCH] ARM: fixup irqflags breakage after ARM genirq merge 2006-07-02 17:29:22 -07:00
fpstate.h [ARM] 4111/1: Allow VFP to work with thread migration on SMP 2007-01-25 16:35:29 +00:00
futex.h [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
glue.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
gpio.h [PATCH] GPIO core 2007-02-12 09:48:34 -08:00
hardirq.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
hardware.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hw_irq.h [PATCH] misc arm pt_regs fixes 2006-10-08 12:32:36 -07:00
ide.h [PATCH] ARM: 2758/1: Fix comment in file header to read "ARM" instead i386 2005-06-27 15:58:39 +01:00
io.h [ARM] mm 10: allow memory type to be specified with ioremap 2007-05-05 20:59:27 +01:00
ioctl.h [PATCH] Generic ioctl.h 2006-01-10 08:01:34 -08:00
ioctls.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipcbuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq.h [ARM] 4073/1: Prevent s3c24xx drivers from including asm/arch/hardware.h and asm/arch/irqs.h 2006-12-30 17:05:07 +00:00
irq_regs.h Initial blind fixup for arm for irq changes 2006-10-06 10:59:54 -07:00
irqflags.h [ARM] Add ARM irqtrace support 2006-09-20 14:58:35 +01:00
Kbuild Add empty Kbuild files for 'make headers_install' in remaining arches. 2006-06-18 12:58:53 +01:00
kdebug.h move die notifier handling to common code 2007-05-08 11:15:04 -07:00
kexec.h kdump/kexec: calculate note size at compile time 2007-05-08 11:15:07 -07:00
kmap_types.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
leds.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
limits.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
linkage.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
local.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
locks.h [ARM] 3019/1: fix wrong comments 2005-10-18 07:51:34 +01:00
mc146818rtc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
memory.h [ARM] Clean up discontigmem support 2006-11-30 22:52:28 +00:00
mman.h [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
mmu.h [ARM] Add section support to ioremap 2006-06-29 22:14:30 +01:00
mmu_context.h [PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction 2007-05-02 19:27:14 +02:00
mmzone.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
module.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
msgbuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mtd-xip.h [MTD] XIP cleanup 2005-07-07 16:50:16 +02:00
mutex.h [ARM] 3311/1: clean up include/asm-arm/mutex.h 2006-02-08 21:19:38 +00:00
namei.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nwflash.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
page-nommu.h [ARM] nommu: adjust headers for !MMU ARM systems 2006-06-28 17:59:45 +01:00
page.h Merge master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-upstream into devel 2006-09-27 19:57:54 +01:00
param.h [ARM] Move HZ definition into Kconfig 2006-03-21 22:05:45 +00:00
parport.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
percpu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pgalloc.h [ARM] nommu: adjust headers for !MMU ARM systems 2006-06-28 17:59:45 +01:00
pgtable-hwdef.h [ARM] Set bit 4 on section mappings correctly depending on CPU 2006-06-29 18:24:21 +01:00
pgtable-nommu.h [ARM] Fix nommu build 2006-11-30 13:53:54 +00:00
pgtable.h [ARM] 4158/1: Fix user page protection macros 2007-02-11 17:06:17 +00:00
poll.h [PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications 2006-03-25 08:22:56 -08:00
posix_types.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
proc-fns.h [ARM] nommu: add ARM946E-S core support 2006-09-27 17:39:19 +01:00
processor.h [ARM] 4016/1: prefetch macro is wrong wrt gcc's "delete-null-pointer-checks" 2006-12-13 18:30:20 +00:00
procinfo.h [ARM] Move HWCAP_* definitions to asm/elf.h 2006-11-30 12:24:46 +00:00
ptrace.h [ARM] Add comments marking in-use ptrace numbers 2007-05-06 14:49:56 +01:00
resource.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rtc.h [PATCH] RTC subsystem: ARM cleanup 2006-03-27 08:44:50 -08:00
scatterlist.h [ARM] Remove '__address' from scatterlist and convert to DMA API 2006-01-04 15:08:30 +00:00
sections.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
segment.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
semaphore-helper.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
semaphore.h [ARM] sema_count() removal 2005-12-01 20:58:01 +00:00
sembuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
serial.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup.h [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
shmbuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
shmparam.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigcontext.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
siginfo.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
signal.h [PATCH] ARM: fixup irqflags breakage after ARM genirq merge 2006-07-02 17:29:22 -07:00
sizes.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smp.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
socket.h [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
spinlock.h [PATCH] Remove the last reference to rwlock_is_locked() macro. 2007-02-11 10:51:34 -08:00
spinlock_types.h [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
stat.h [ARM] 3106/2: ARM EABI: some syscall adjustments 2006-01-14 16:32:12 +00:00
statfs.h [ARM] 3108/2: old ABI compat: statfs64 and fstatfs64 2006-01-14 16:35:03 +00:00
string.h [PATCH] ARM: 2653/1: Fix memset and memzero macro double-reference of parameters 2005-04-25 23:40:05 +01:00
suspend.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
system.h move die notifier handling to common code 2007-05-08 11:15:04 -07:00
termbits.h [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
termios.h [PATCH] consolidate line discipline number definitions 2007-02-11 10:51:26 -08:00
therm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
thread_info.h [ARM] Move syscall saving out of the way of utrace 2007-05-06 13:56:26 +01:00
thread_notify.h [ARM] Add thread_notify infrastructure 2006-06-22 10:24:18 +01:00
timex.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tlb.h [ARM] noMMU: removes TLB codes in nommu mode 2006-03-21 22:03:20 +00:00
tlbflush.h [ARM] 4129/1: Add barriers after the TLB operations 2007-02-08 14:49:27 +00:00
topology.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
traps.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
types.h [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
uaccess.h Storage class should be before const qualifier 2007-02-17 20:11:19 +01:00
ucontext.h [ARM] 3664/1: crunch: add signal frame save/restore 2006-06-28 17:54:59 +01:00
unaligned.h [ARM] 3849/1: fix get_unaligned() for gcc >= 4.1 2006-09-25 10:34:00 +01:00
unistd.h [ARM] Fix __NR_kexec_load 2007-04-01 22:35:01 +01:00
user.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vfp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vfpmacros.h [ARM] 3472/1: Use the D variants of FLDMIA/FSTMIA on ARMv6 2006-04-10 21:32:42 +01:00
vga.h [PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use 2006-06-22 15:05:58 -07:00
xor.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00