Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 4522

kernel-2.6.18-194.11.1.el5.src.rpm

From: Bill Burns <bburns@redhat.com>
Date: Wed, 28 May 2008 14:49:50 -0400
Subject: [xen] kexec: allocate correct memory reservation
Message-id: 20080528184948.14249.14467.sendpatchset@localhost.localdomain
O-Subject: [RHEL5.3 PATCH] Xen Fix Kexec reservation
Bugzilla: 442661
RH-Acked-by: Neil Horman <nhorman@redhat.com>
RH-Acked-by: Don Dutile <ddutile@redhat.com>
RH-Acked-by: Rik van Riel <riel@redhat.com>

Fixes bz 442661

The memory reservation for kexec in the Xen Hypervisor
was incorrect. The parameters for the call to reserve the
memory are start address and end address. The supplied
parameters were start address and size, resulting in an
improper allocation and a failure to produce a usefull dump.

Credit to Dave Anderson who tracked down the bug and supplied
the fix.

The fix has been accepted upstream:
Xen unstable cset 17653 http://xenbits.xensource.com/xen-unstable.hg?rev/e66aefdfedcc

Brew build:
http://brewweb.devel.redhat.com/brew/taskinfo?taskID=1337121

Please review and ACK.

Thanks,
 Bill

diff --git a/arch/x86/setup.c b/arch/x86/setup.c
index f9b25d5..f3c7b8a 100644
--- a/arch/x86/setup.c
+++ b/arch/x86/setup.c
@@ -389,7 +389,7 @@ void __init kexec_reserve_area(struct e820map *e820)
 
     is_reserved = 1;
 
-    if ( !reserve_e820_ram(e820, kdump_start, kdump_size) )
+    if ( !reserve_e820_ram(e820, kdump_start, kdump_start + kdump_size) )
     {
         printk("Kdump: DISABLED (failed to reserve %luMB (%lukB) at 0x%lx)"
                "\n", kdump_size >> 20, kdump_size >> 10, kdump_start);