--- /dev/null
+++ x/patches/linux-2.6.16.33/ia64-kexec-CONFIG_KEXEC-cleanup.patch
@@ -0,0 +1,85 @@
+commit 45a98fc622ae700eed34eb2be00743910d50dbe1
+tree e5e5279c25582a7d26c37af189330318fe0f42dd
+parent adf142e379bd20ad906a7e36f722eaabb3b44b0c
+author Horms <horms@verge.net.au> 1165913343 +0900
+committer Tony Luck <tony.luck@intel.com> 1165947060 -0800
+
+[IA64] CONFIG_KEXEC/CONFIG_CRASH_DUMP permutations
+
+Actually, on reflection I think that there is a good case for
+keeping the options separate. I am thinking particularly of people
+who want a very small crashdump kernel and thus don't want to compile
+in kexec.
+
+The patch below should fix things up so that all valid combinations of
+KEXEC, CRASH_DUMP and VMCORE compile cleanly - VMCORE depends on
+CRASH_DUMP which is why I said valid combinations. In a nutshell
+it just untangles unrelated code and switches around a few defines.
+
+Please note that it creats a new file, arch/ia64/kernel/crash_dump.c
+This is in keeping with the i386 implementation.
+
+Signed-off-by: Simon Horman <horms@verge.net.au>
+Signed-off-by: Tony Luck <tony.luck@intel.com>
+
+ arch/ia64/kernel/Makefile     |    1 
+ arch/ia64/kernel/crash.c      |   22 ------------------
+ arch/ia64/kernel/crash_dump.c |   48 +++++++++++++++++++++++++++++++++++++++++
+ arch/ia64/kernel/mca.c        |    2 -
+ arch/ia64/kernel/setup.c      |   15 ++++++++++++
+ arch/ia64/kernel/smp.c        |    4 +--
+ arch/ia64/mm/contig.c         |    6 +++++
+ 7 files changed, 73 insertions(+), 25 deletions(-)
+
+diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
+index 87c1c4f..a76add3 100644
+--- a/arch/ia64/kernel/mca.c
++++ b/arch/ia64/kernel/mca.c
+@@ -1239,7 +1239,7 @@
+ 		ia64_sal_clear_state_info(SAL_INFO_TYPE_MCA);
+ 		sos->os_status = IA64_MCA_CORRECTED;
+  	} else {
+-#ifdef CONFIG_CRASH_DUMP
++#ifdef CONFIG_KEXEC
+ 		atomic_set(&kdump_in_progress, 1);
+ 		monarch_cpu = -1;
+ #endif
+diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c
+index b1b9aa4..f4c7f77 100644
+--- a/arch/ia64/kernel/smp.c
++++ b/arch/ia64/kernel/smp.c
+@@ -157,7 +157,7 @@ handle_IPI (int irq, void *dev_id)
+ 			      case IPI_CPU_STOP:
+ 				stop_this_cpu();
+ 				break;
+-#ifdef CONFIG_CRASH_DUMP
++#ifdef CONFIG_KEXEC
+ 			      case IPI_KDUMP_CPU_STOP:
+ 				unw_init_running(kdump_cpu_freeze, NULL);
+ 				break;
+@@ -219,7 +219,7 @@ send_IPI_self (int op)
+ 	send_IPI_single(smp_processor_id(), op);
+ }
+ 
+-#ifdef CONFIG_CRASH_DUMP
++#ifdef CONFIG_KEXEC
+ void
+ kdump_smp_send_stop()
+ {
+diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c
+index 82deaa3..fd10388 100644
+--- a/arch/ia64/mm/contig.c
++++ b/arch/ia64/mm/contig.c
+@@ -174,6 +174,12 @@ find_memory (void)
+ 	reserve_bootmem(bootmap_start, bootmap_size);
+ 
+ 	find_initrd();
++
++#ifdef CONFIG_CRASH_DUMP
++	/* If we are doing a crash dump, we still need to know the real mem
++	 * size before original memory map is * reset. */
++	saved_max_pfn = max_pfn;
++#endif
+ }
+ 
+ #ifdef CONFIG_SMP
--- x/patches/linux-2.6.16.33/series
+++ x/patches/linux-2.6.16.33/series
@@ -34,3 +34,4 @@ vsnprintf.patch
 kasprintf.patch
 sysctl-unnumbered.patch
 ia64-kexec.patch
+ia64-kexec-CONFIG_KEXEC-cleanup.patch
