Blob Blame History Raw
--- kexec-tools-1.101/kexec/arch/ia64/crashdump-ia64.c.orig	2006-11-14 13:38:45.000000000 -0500
+++ kexec-tools-1.101/kexec/arch/ia64/crashdump-ia64.c	2006-11-14 14:52:34.000000000 -0500
@@ -316,10 +316,14 @@
 	int nr_ranges;
 	size_t size;
 	void *tmp;
+	long int nr_cpus;
+	if ((nr_cpus = sysconf(_SC_NPROCESSORS_CONF)) < 0)
+		return -1;
 	if (info->kexec_flags & KEXEC_ON_CRASH ) {
 		if (get_crash_memory_ranges(&mem_range, &nr_ranges) == 0) {
-			size =  sizeof(Elf64_Ehdr) +
-				(nr_ranges + 1) * sizeof(Elf64_Phdr);
+			size =  (sizeof(Elf64_Ehdr) +
+				((nr_cpus +1) * sizeof(Elf64_Phdr)) +
+				((nr_ranges + 1) * sizeof(Elf64_Phdr)));
 			size = (size + EFI_PAGE_SIZE - 1) & ~(EFI_PAGE_SIZE - 1);
 			tmp = xmalloc(size);
 			memset(tmp, 0, size);