forked from pool/kexec-tools
This commit is contained in:
parent
dbecc2c20c
commit
1b0ced8658
34
kexec-tools-edd-fix
Normal file
34
kexec-tools-edd-fix
Normal file
@ -0,0 +1,34 @@
|
||||
From 86ff227557dde6398317f0cea9448391314b070a Mon Sep 17 00:00:00 2001
|
||||
From: Bernhard Walle <bwalle@suse.de>
|
||||
Date: Mon, 26 May 2008 23:12:58 +0200
|
||||
Subject: [PATCH] EDD fix
|
||||
|
||||
This patch fixes EDD support where the BIOS reports a length lower than the
|
||||
actual length of raw_data in sysfs. That's no problem -- the check only
|
||||
needs to catch the case where the sysfs file is *smaller* than the
|
||||
BIOS reported length.
|
||||
|
||||
Also add a newline at the end of the error message.
|
||||
|
||||
The problem was introduced in 3bf0213789d56054f601c5a06372f78567aacdd9 by
|
||||
myself, the initial EDD implementation.
|
||||
|
||||
|
||||
Signed-off-by: Bernhard Walle <bwalle@suse.de>
|
||||
|
||||
diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c
|
||||
index 05a087e..cbb9d30 100644
|
||||
--- a/kexec/arch/i386/x86-linux-setup.c
|
||||
+++ b/kexec/arch/i386/x86-linux-setup.c
|
||||
@@ -254,9 +254,9 @@ static int read_edd_raw_data(const char *dir, struct edd_info *edd_info)
|
||||
len = ((uint16_t *)edd_info->edd_device_params)[0];
|
||||
dbgprintf("EDD raw data has length %d\n", len);
|
||||
|
||||
- if (read_chars != len) {
|
||||
+ if (read_chars < len) {
|
||||
fprintf(stderr, "BIOS reported EDD length of %hd but only "
|
||||
- "%d chars read.", len, (int)read_chars);
|
||||
+ "%d chars read.\n", len, (int)read_chars);
|
||||
return -1;
|
||||
}
|
||||
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon May 26 23:14:15 CEST 2008 - bwalle@suse.de
|
||||
|
||||
- fix EDD support when the BIOS-reported length is smaller than
|
||||
the sysfs raw_data size (bnc#388754)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 26 14:15:00 CEST 2008 - bwalle@suse.de
|
||||
|
||||
|
@ -23,7 +23,7 @@ Requires: %insserv_prereq %fillup_prereq
|
||||
AutoReqProv: on
|
||||
Summary: Tools for fast kernel loading
|
||||
Version: 1.101
|
||||
Release: 198
|
||||
Release: 199
|
||||
Source: %{name}-%{package_version}.tar.bz2
|
||||
Source1: README.SUSE
|
||||
Url: http://ftp.kernel.org/pub/linux/kernel/people/horms/kexec-tools/
|
||||
@ -34,6 +34,7 @@ Patch2: kexec-tools.gcc-bug.patch
|
||||
Patch3: kexec-tools-edd-support
|
||||
Patch4: kexec-tools-refactor-architecture-detection
|
||||
Patch5: kexec-tools-fix-arch-on-unload
|
||||
Patch6: kexec-tools-edd-fix
|
||||
|
||||
%description
|
||||
Kexec is a user space utility for loading another kernel and asking the
|
||||
@ -59,6 +60,7 @@ Authors:
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
|
||||
%build
|
||||
%{?suse_update_config -f}
|
||||
@ -94,6 +96,9 @@ install -c -m 0644 kexec/kexec.8 $RPM_BUILD_ROOT%{_mandir}/man8
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue May 27 2008 bwalle@suse.de
|
||||
- fix EDD support when the BIOS-reported length is smaller than
|
||||
the sysfs raw_data size (bnc#388754)
|
||||
* Mon May 26 2008 bwalle@suse.de
|
||||
- fix kexec unload (rckdump stop) on ppc64 (bnc#394216)
|
||||
* Tue May 13 2008 bwalle@suse.de
|
||||
|
Loading…
Reference in New Issue
Block a user