Hello community,
here is the log from the commit of package kexec-tools
checked in at Fri Apr 28 21:12:24 CEST 2006.
--------
--- kexec-tools/kexec-tools.changes 2006-04-26 11:47:26.000000000 +0200
+++ STABLE/kexec-tools/kexec-tools.changes 2006-04-26 13:44:37.000000000 +0200
@@ -1,0 +2,7 @@
+Wed Apr 26 13:42:38 CEST 2006 - olh@suse.de
+
+- linux,platform properties were removed from kernel 2.6.17
+ assume non-LPAR if some properties do no exist in the device-tree
+ (164993 - LTC23056)
+
+-------------------------------------------------------------------
New:
----
kexec-tools-ppc64-rm-platform-prop-fix.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kexec-tools.spec ++++++
--- /var/tmp/diff_new_pack.lFg0YQ/_old 2006-04-28 21:12:19.000000000 +0200
+++ /var/tmp/diff_new_pack.lFg0YQ/_new 2006-04-28 21:12:19.000000000 +0200
@@ -17,7 +17,7 @@
Autoreqprov: on
Summary: Tools for fast kernel loading
Version: 1.101
-Release: 22
+Release: 26
Source: %{name}-%{version}.tar.bz2
Source1: kdump
Source2: sysconfig.kdump
@@ -29,6 +29,7 @@
Patch2: kexec-tools-x86-warning-fix.diff
Patch3: kexec-tools-ia64-fix.diff
Patch4: kexec-tools-s390-fix.diff
+Patch5: kexec-tools-ppc64-rm-platform-prop-fix.patch
URL: http://www.xmission.com/~ebiederm/files/kexec/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -56,6 +57,7 @@
%patch2
%patch3
%patch4
+%patch5 -p1
%{?suse_update_config -f}
cp %{SOURCE5} .
@@ -112,6 +114,10 @@
%changelog -n kexec-tools
* Wed Apr 26 2006 - olh@suse.de
+- linux,platform properties were removed from kernel 2.6.17
+ assume non-LPAR if some properties do no exist in the device-tree
+ (164993 - LTC23056)
+* Wed Apr 26 2006 - olh@suse.de
- set /proc/sys/kernel/panic_on_oops to actually trigger a dump
* Wed Mar 08 2006 - olh@suse.de
- add --args-linux only on intel
++++++ kexec-tools-ppc64-rm-platform-prop-fix.patch ++++++
In recent kernels, the plaform property is removed from the /proc/device-tree.
This property is used to determine whether the platform is LPAR or non-lpar,
and reads htab-* and tce-* properties based on the platform. Fixed this issue
such that read these properties if exists, otherwise continue instead of
exiting with an error message.
Signed-off-by: David Wilder
Signed-off-by: Haren Myneni
---
kexec/arch/ppc64/kexec-ppc64.c | 55 +++++++++++------------------------------
1 file changed, 15 insertions(+), 40 deletions(-)
Index: kexec-tools-1.101/kexec/arch/ppc64/kexec-ppc64.c
===================================================================
--- kexec-tools-1.101.orig/kexec/arch/ppc64/kexec-ppc64.c
+++ kexec-tools-1.101/kexec/arch/ppc64/kexec-ppc64.c
@@ -34,13 +34,8 @@
#include "crashdump-ppc64.h"
#include
-/* Platforms supported by kexec on PPC64 */
-#define PLATFORM_PSERIES 0x0100
-#define PLATFORM_PSERIES_LPAR 0x0101
-
static struct exclude_range exclude_range[MAX_MEMORY_RANGES];
static unsigned long long rmo_top;
-static unsigned int platform;
static struct memory_range memory_range[MAX_MEMORY_RANGES];
static struct memory_range base_memory_range[MAX_MEMORY_RANGES];
unsigned long long memory_max = 0;
@@ -201,26 +196,6 @@ static int get_devtree_details(unsigned
}
if (strncmp(dentry->d_name, "chosen", 6) == 0) {
- /* get platform details from /chosen node */
- strcat(fname, "/linux,platform");
- if ((file = fopen(fname, "r")) == NULL) {
- perror(fname);
- closedir(cdir);
- closedir(dir);
- return -1;
- }
- if (fread(&platform, sizeof(int), 1, file) != 1) {
- perror(fname);
- fclose(file);
- closedir(cdir);
- closedir(dir);
- return -1;
- }
- fclose(file);
-
- memset(fname, 0, sizeof(fname));
- strcpy(fname, device_tree);
- strcat(fname, dentry->d_name);
strcat(fname, "/linux,kernel-end");
if ((file = fopen(fname, "r")) == NULL) {
perror(fname);
@@ -291,18 +266,18 @@ static int get_devtree_details(unsigned
reserve(KDUMP_BACKUP_LIMIT, crash_base-KDUMP_BACKUP_LIMIT);
}
- /* if LPAR, no need to read any more from /chosen */
- if (platform != PLATFORM_PSERIES) {
- closedir(cdir);
- continue;
- }
memset(fname, 0, sizeof(fname));
strcpy(fname, device_tree);
strcat(fname, dentry->d_name);
strcat(fname, "/linux,htab-base");
if ((file = fopen(fname, "r")) == NULL) {
- perror(fname);
closedir(cdir);
+ if (errno == ENOENT) {
+ /* Non LPAR */
+ errno = 0;
+ continue;
+ }
+ perror(fname);
closedir(dir);
return -1;
}
@@ -394,23 +369,23 @@ static int get_devtree_details(unsigned
}
rmo_base = ((unsigned long long *)buf)[0];
rmo_top = rmo_base + ((unsigned long long *)buf)[1];
- if (platform == PLATFORM_PSERIES) {
- if (rmo_top > 0x30000000UL)
- rmo_top = 0x30000000UL;
- }
+ if (rmo_top > 0x30000000UL)
+ rmo_top = 0x30000000UL;
+
fclose(file);
closedir(cdir);
} /* memory */
if (strncmp(dentry->d_name, "pci@", 4) == 0) {
- if (platform != PLATFORM_PSERIES) {
- closedir(cdir);
- continue;
- }
strcat(fname, "/linux,tce-base");
if ((file = fopen(fname, "r")) == NULL) {
- perror(fname);
closedir(cdir);
+ if (errno == ENOENT) {
+ /* Non LPAR */
+ errno = 0;
+ continue;
+ }
+ perror(fname);
closedir(dir);
return -1;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...