Bug#735360: kexec-tools: Multiboot mem_lower is always zero after kexec

2014-01-15 Thread Khalid Aziz
On Wed, 2014-01-15 at 10:23 +1000, Peter Chubb wrote:
 Package: kexec-tools
 Version: 1:2.0.4-1
 Severity: normal
 Tags: upstream, patch
 
 Dear Maintainer,
  I'm trying to use kexec to boot a multiboot image.  My image
  relies on mbi-mem_lower being correct, but the current code
  combined with a stock debian kernel always fills this field in
  with zero.
 
  The problem is that the debian stock kernel protects the first
  few pages (from physical address zero) so they don't appear in
  /proc/iomem -- so the test in kexec-multiboot-x86.c to
  find the low memory fails -- there's never any visible memroy at
  location zero in /proc/iomem.
 
  My suggested fix is attached.

Queueing it up for the next version. Thanks, Peter!

--
Khalid


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#735360: kexec-tools: Multiboot mem_lower is always zero after kexec

2014-01-15 Thread Peter Chubb
Hi Khalid,
   FYI: The patch has now been applied upstream, too.

Peter C
--
Dr Peter Chubb  peter.chubb AT nicta.com.au
http://www.ssrg.nicta.com.au  Software Systems Research Group/NICTA


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#735360: kexec-tools: Multiboot mem_lower is always zero after kexec

2014-01-14 Thread Peter Chubb
Package: kexec-tools
Version: 1:2.0.4-1
Severity: normal
Tags: upstream, patch

Dear Maintainer,
 I'm trying to use kexec to boot a multiboot image.  My image
 relies on mbi-mem_lower being correct, but the current code
 combined with a stock debian kernel always fills this field in
 with zero.

 The problem is that the debian stock kernel protects the first
 few pages (from physical address zero) so they don't appear in
 /proc/iomem -- so the test in kexec-multiboot-x86.c to
 find the low memory fails -- there's never any visible memroy at
 location zero in /proc/iomem.

 My suggested fix is attached.

---
 kexec/arch/i386/kexec-multiboot-x86.c |   14 +++---
 1 file changed, 11 insertions(+), 3 deletions(-)

Index: kexec-tools-2.0.4/kexec/arch/i386/kexec-multiboot-x86.c
===
--- kexec-tools-2.0.4.orig/kexec/arch/i386/kexec-multiboot-x86.c
2013-03-14 18:45:16.0 +1000
+++ kexec-tools-2.0.4/kexec/arch/i386/kexec-multiboot-x86.c 2014-01-15 
10:21:02.138172304 +1000
@@ -261,10 +261,18 @@ int multiboot_x86_load(int argc, char **
mmap[i].length_high= length  32;
if (range[i].type == RANGE_RAM) {
mmap[i].Type = 1; /* RAM */
-   /* Is this the low memory? */
-   if ((range[i].start == 0)
-(range[i].end  mem_lower))
+   /*
+ * Is this the low memory?  Can't just test
+ * against zero, because Linux protects (and
+ * hides) the first few pages of physical
+ * memory.
+ */
+
+   if ((range[i].start = 64*1024)
+(range[i].end  mem_lower)) {
+range[i].start = 0;
mem_lower = range[i].end;
+}
/* Is this the high memory? */
if ((range[i].start = 0x10)
 (range[i].end  mem_upper + 0x10))



-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.13.0-rc8 (SMP w/8 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages kexec-tools depends on:
ii  debconf [debconf-2.0]  1.5.52
ii  libc6  2.17-97

kexec-tools recommends no packages.

kexec-tools suggests no packages.

-- debconf information:
* kexec-tools/load_kexec: true
  kexec-tools/use_grub_config: false


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org