linux/include/asm-sh
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
..
cpu-sh2 [PATCH] Optimize D-cache alias handling on fork 2006-12-13 09:27:08 -08:00
cpu-sh2a sh: Drop CPU subtype IRQ headers. 2006-12-06 10:45:37 +09:00
cpu-sh3 sh: MS7712SE01 board support. 2007-05-07 02:10:54 +00:00
cpu-sh4 sh: SH7722 clock framework support. 2007-05-07 02:11:56 +00:00
dreamcast fix file specification in comments 2006-10-03 23:01:26 +02:00
hd64465 fix file specification in comments 2006-10-03 23:01:26 +02:00
landisk sh: Remove board-specific ide.h headers. 2006-10-19 16:30:32 +09:00
mpc1211 fix file specification in comments 2006-10-03 23:01:26 +02:00
saturn
sh03 sh: Remove board-specific ide.h headers. 2006-10-19 16:30:32 +09:00
.gitignore sh: Initial gitignore list 2006-10-03 13:16:15 +09:00
Kbuild sh: Add cpu-features header to asm/Kbuild. 2007-02-13 10:54:46 +09:00
a.out.h
adc.h
addrspace.h sh: __addr_ok() and other misc nommu fixups. 2006-09-27 17:25:07 +09:00
atomic-irq.h sh: Split out atomic ops logically. 2006-12-12 08:42:08 +09:00
atomic-llsc.h sh: Split out atomic ops logically. 2006-12-12 08:42:08 +09:00
atomic.h sh: Split out atomic ops logically. 2006-12-12 08:42:08 +09:00
auxvec.h sh: Initial vsyscall page support. 2006-09-27 18:33:49 +09:00
bitops.h sh: Various cosmetic cleanups. 2006-09-27 12:31:01 +09:00
bug.h sh: generic BUG() support. 2007-05-07 02:10:53 +00:00
bugs.h sh: Fixup cpu_data references for the non-boot CPUs. 2007-02-13 10:54:45 +09:00
byteorder.h
cache.h sh: Use L1_CACHE_BYTES for .data.cacheline_aligned. 2007-03-05 14:13:26 +09:00
cacheflush.h sh: Revert lazy dcache writeback changes. 2007-03-05 19:46:47 +09:00
checksum.h sh: Shut up csum_ipv6_magic() warnings. 2006-12-12 08:42:07 +09:00
clock.h sh: Move clock reporting to its own proc entry. 2007-05-07 02:11:56 +00:00
cpu-features.h sh: Support for L2 cache on newer SH-4A CPUs. 2006-09-27 18:27:43 +09:00
cputime.h
current.h
delay.h
device.h Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
div64.h
dma-mapping.h sh: define dma noncoherent API functions. 2007-02-13 11:11:22 +09:00
dma.h sh: dma-api channel capability extensions. 2006-12-06 10:45:39 +09:00
edosk7705.h sh: Add some missing board headers. 2006-10-19 17:31:22 +09:00
elf.h sh: Preliminary support for SH-X2 MMU. 2006-12-06 10:45:37 +09:00
emergency-restart.h
entry-macros.S sh: Fixup various PAGE_SIZE == 4096 assumptions. 2006-12-06 10:45:39 +09:00
errno.h
fcntl.h
fixmap.h sh: Various cosmetic cleanups. 2006-09-27 12:31:01 +09:00
flat.h sh: Various nommu fixes. 2006-09-27 17:21:02 +09:00
floppy.h [PATCH] irq-flags: SH: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
freq.h
futex.h
hardirq.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
hd64461.h sh: APM/PM support. 2006-09-27 16:20:22 +09:00
hp6xx.h sh: Trivial fix for hp6xx build. 2007-03-28 19:45:59 +09:00
hs7751rvoip.h sh: Add some missing board headers. 2006-10-19 17:31:22 +09:00
hw_irq.h sh: Updates for IRQ handler changes. 2006-10-06 15:31:16 +09:00
ide.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
io.h [PATCH] Consolidate check_signature 2006-10-11 11:14:23 -07:00
io_generic.h
ioctl.h
ioctls.h sh: Convert struct ioctls to static defines. 2007-03-12 16:12:45 +09:00
ipc.h
ipcbuf.h
irq.h sh: NR_IRQS consolidation. 2007-05-07 02:10:53 +00:00
irq_regs.h sh: Updates for IRQ handler changes. 2006-10-06 15:31:16 +09:00
irqflags.h sh: stacktrace/lockdep/irqflags tracing support. 2006-12-06 10:45:40 +09: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
keyboard.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
kgdb.h sh: Bring kgdb back from the dead. 2007-05-07 02:10:51 +00:00
kmap_types.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
lboxre2.h sh: Tidy up L-BOX area5 addresses. 2007-05-07 02:11:55 +00:00
linkage.h
local.h
machvec.h sh: machvec rework. 2006-09-27 18:17:31 +09:00
machvec_init.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
mc146818rtc.h sh: Kill off the rest of the legacy rtc mess. 2006-09-27 17:45:01 +09:00
microdev.h
mman.h
mmu.h sh: Use a per-cpu ASID cache. 2007-02-13 10:54:45 +09:00
mmu_context.h sh: bootmem tidying for discontig/sparsemem preparation. 2007-05-07 02:10:54 +00:00
module.h
msgbuf.h
mutex.h
namei.h
page.h sh: bootmem tidying for discontig/sparsemem preparation. 2007-05-07 02:10:54 +00:00
param.h sh: Obey CONFIG_HZ for HZ definition. 2007-05-07 02:11:56 +00:00
pci.h sh: Add SH7785 Highlander board support (R7785RP). 2007-05-07 02:10:53 +00:00
percpu.h
pgalloc.h sh: pmd rework. 2006-12-06 10:45:38 +09:00
pgtable.h sh: Revert lazy dcache writeback changes. 2007-03-05 19:46:47 +09:00
pm.h sh: APM/PM support. 2006-09-27 16:20:22 +09:00
poll.h
posix_types.h
processor.h sh: MS7712SE01 board support. 2007-05-07 02:10:54 +00:00
ptrace.h Fix 'make headers_check' on sh 2006-09-21 08:36:50 +01:00
push-switch.h sh: push-switch fixups for work_struct API damage. 2006-12-12 08:42:07 +09:00
r7780rp.h sh: R7785RP board updates. 2007-05-07 02:11:57 +00:00
resource.h
rtc.h sh: Kill off the rest of the legacy rtc mess. 2006-09-27 17:45:01 +09:00
rts7751r2d.h sh: rts7751r2d board updates. 2007-02-15 18:20:52 +09:00
rwsem.h sh: stacktrace/lockdep/irqflags tracing support. 2006-12-06 10:45:40 +09:00
scatterlist.h PCI: scatterlist.h needs types.h 2007-05-02 19:02:34 -07:00
sci.h serial: Add SERIAL_SH_SCI_NR_UARTS for sh-sci. 2006-09-27 17:32:30 +09:00
se.h sh: Solution Engine SH7705 board and CPU updates. 2007-05-07 02:11:56 +00:00
se7206.h sh: SE7206 build fixes. 2006-12-06 10:45:37 +09:00
se7300.h sh: Board updates for I/O routine rework. 2006-09-27 15:41:24 +09:00
se7343.h sh: Solution Engine SH7343 board support. 2006-09-27 18:09:34 +09:00
se7722.h sh: Solution Engine 7722 board support. 2007-05-07 02:11:57 +00:00
se7751.h sh: Bring kgdb back from the dead. 2007-05-07 02:10:51 +00:00
se7780.h sh: SH7780 Solution Engine board support. 2007-05-07 02:11:55 +00:00
se73180.h sh: Board updates for I/O routine rework. 2006-09-27 15:41:24 +09:00
sections.h
segment.h
semaphore-helper.h
semaphore.h
sembuf.h
serial.h sh: rts7751r2d board updates. 2007-02-15 18:20:52 +09:00
setup.h [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
sfp-machine.h sh: Kill off remaining config.h references. 2006-10-03 13:19:02 +09:00
sh_bios.h
shmbuf.h
shmin.h sh: Add some missing board headers. 2006-10-19 17:31:22 +09:00
shmparam.h sh: Fixup SHMLBA definition for SH7705. 2006-09-27 15:29:18 +09:00
sigcontext.h
siginfo.h
signal.h [PATCH] irq-flags: SH: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
smc37c93x.h sh: Move smc37c93x.h for SystemH board use. 2006-09-27 11:16:20 +09:00
smp.h sh: remove cpu_online() definition from <asm/smp.h> 2006-09-27 14:32:57 +09:00
snapgear.h sh: Board updates for I/O routine rework. 2006-09-27 15:41:24 +09: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 sh: Fixup __raw_read_trylock(). 2006-10-03 14:13:09 +09:00
spinlock_types.h
stat.h sh: Fix fstatat64() syscall. 2007-05-07 02:11:55 +00:00
statfs.h
string.h [STRING]: Move strcasecmp/strncasecmp to lib/string.c 2007-04-26 01:54:39 -07:00
system.h sh: Add die chain notifiers. 2007-05-07 02:11:57 +00:00
systemh7751.h sh: Board updates for I/O routine rework. 2006-09-27 15:41:24 +09: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
thread_info.h sh: Clear UBC when not in use. 2007-03-05 14:13:25 +09:00
timer.h sh: dyntick infrastructure. 2006-12-06 10:45:40 +09:00
timex.h
titan.h sh: sh775x/titan fixes for irq header changes. 2006-12-06 12:05:02 +09:00
tlb.h
tlbflush.h sh: Local TLB flushing variants for SMP prep. 2007-02-13 10:54:45 +09:00
topology.h
types.h [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
uaccess.h sh: __addr_ok() and other misc nommu fixups. 2006-09-27 17:25:07 +09:00
ubc.h sh: Fixup cpu_data references for the non-boot CPUs. 2007-02-13 10:54:45 +09:00
ucontext.h
unaligned.h
unistd.h sh: Define missing __NR_readahead. 2007-03-12 15:55:19 +09:00
user.h
voyagergx.h sh: rts7751r2d board updates. 2007-02-15 18:20:52 +09:00
watchdog.h sh: Various cosmetic cleanups. 2006-09-27 12:31:01 +09:00
xor.h