From 9a68e113f6b29ab3163d43ac0bdffd16cc980dfa Mon Sep 17 00:00:00 2001 From: Neil Horman Date: Mar 10 2008 19:17:51 +0000 Subject: Resolves bz 436740 --- diff --git a/kexec-tools-1.102pre-ppc64-devtree.patch b/kexec-tools-1.102pre-ppc64-devtree.patch new file mode 100644 index 0000000..824768a --- /dev/null +++ b/kexec-tools-1.102pre-ppc64-devtree.patch @@ -0,0 +1,65 @@ +diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c +--- kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c.orig 2008-03-10 15:08:18.000000000 -0400 ++++ kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c 2008-03-10 15:15:27.000000000 -0400 +@@ -129,7 +129,8 @@ static int get_crash_memory_ranges(struc + goto err; + } + while ((dentry = readdir(dir)) != NULL) { +- if (strncmp(dentry->d_name, "memory@", 7)) ++ if (strncmp(dentry->d_name, "memory@", 7) && ++ strcmp(dentry->d_name, "memory")) + continue; + strcpy(fname, device_tree); + strcat(fname, dentry->d_name); +diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c +--- kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c.orig 2008-03-10 15:08:18.000000000 -0400 ++++ kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c 2008-03-10 15:15:27.000000000 -0400 +@@ -101,7 +101,7 @@ err1: + } + + /* +- * Count the memory@ nodes under /proc/device-tree and populate the ++ * Count the memory nodes under /proc/device-tree and populate the + * max_memory_ranges variable. This variable replaces MAX_MEMORY_RANGES + * macro used earlier. + */ +@@ -118,7 +118,8 @@ static int count_memory_ranges() + + while ((dentry = readdir(dir)) != NULL) { + if (strncmp(dentry->d_name, "memory@", 7) && +- strncmp(dentry->d_name, "pci@", 4)) ++ strcmp(dentry->d_name, "memory") && ++ strncmp(dentry->d_name, "pci@", 4)) + continue; + max_memory_ranges++; + } +@@ -144,7 +145,8 @@ static int get_base_ranges() + return -1; + } + while ((dentry = readdir(dir)) != NULL) { +- if (strncmp(dentry->d_name, "memory@", 7)) ++ if (strncmp(dentry->d_name, "memory@", 7) && ++ strcmp(dentry->d_name, "memory")) + continue; + strcpy(fname, device_tree); + strcat(fname, dentry->d_name); +@@ -268,7 +270,8 @@ static int get_devtree_details(unsigned + + while ((dentry = readdir(dir)) != NULL) { + if (strncmp(dentry->d_name, "chosen", 6) && +- strncmp(dentry->d_name, "memory@0", 8) && ++ strncmp(dentry->d_name, "memory@", 7) && ++ strcmp(dentry->d_name, "memory") && + strncmp(dentry->d_name, "pci@", 4) && + strncmp(dentry->d_name, "rtas", 4)) + continue; +@@ -437,7 +440,8 @@ static int get_devtree_details(unsigned + add_usable_mem_rgns(rtas_base, rtas_size); + } /* rtas */ + +- if (strncmp(dentry->d_name, "memory@0", 8) == 0) { ++ if (!strncmp(dentry->d_name, "memory@", 7) || ++ !strcmp(dentry->d_name, "memory")) { + strcat(fname, "/reg"); + if ((file = fopen(fname, "r")) == NULL) { + perror(fname); diff --git a/kexec-tools.spec b/kexec-tools.spec index 2a5f53d..4baa1ca 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -1,6 +1,6 @@ Name: kexec-tools Version: 1.102pre -Release: 5%{?dist} +Release: 6%{?dist} License: GPL Group: Applications/System Summary: The kexec/kdump userspace component. @@ -49,6 +49,7 @@ Patch102: kexec-tools-1.101-x86_64-exactmap.patch Patch301: kexec-tools-1.102pre-ppc64_rmo_top.patch Patch302: kexec-tools-1.102pre-ppc64-buffer-overflow.patch Patch303: kexec-tools-1.102pre-ppc-boots-ppc64.patch +Patch304: kexec-tools-1.102pre-ppc64-devtree.patch # # Patches 401 through 500 are meant for s390 kexec-tools enablement @@ -84,6 +85,7 @@ rm -f ../kexec-tools-1.101.spec %patch301 -p1 %patch302 -p1 %patch303 -p1 +%patch304 -p1 %patch501 -p1 @@ -224,6 +226,9 @@ done %doc kexec-kdump-howto.txt %changelog +* Mon Mar 10 2008 Neil Horman - 1.102pre-6 +- Fix ppc64 devtree naming (bz 436740) + * Thu Feb 28 2008 Neil Horman - 1.102pre-5 - Readding ability for ppc to boot 64 bit kernel (bz 405341)