This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-changelog] [xen-unstable] [IA64] Kexec: Zap VHPT in relocate_kernel

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] Kexec: Zap VHPT in relocate_kernel
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 04 Oct 2007 17:41:07 -0700
Delivery-date: Thu, 04 Oct 2007 17:43:54 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1190931994 21600
# Node ID cbe97b8802e928233b9e4de9db6bbd1c40391b6f
# Parent  687de7ae22983e4078c1fd945e72c47641ac4592
[IA64] Kexec: Zap VHPT in relocate_kernel

On XEN do_ia64_purge_tlb unpins the VHPT entry, so it seems
logical that relocate_kernel should do the same thing.
It seems to work, but is it correct?

Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
 xen/arch/ia64/xen/machine_kexec.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff -r 687de7ae2298 -r cbe97b8802e9 xen/arch/ia64/xen/machine_kexec.c
--- a/xen/arch/ia64/xen/machine_kexec.c Thu Sep 27 16:24:02 2007 -0600
+++ b/xen/arch/ia64/xen/machine_kexec.c Thu Sep 27 16:26:34 2007 -0600
@@ -12,12 +12,14 @@
 #include <xen/lib.h>
 #include <xen/types.h>
 #include <xen/smp.h>
+#include <xen/acpi.h>
 #include <public/kexec.h>
 #include <linux/efi.h>
 #include <asm/delay.h>
 #include <asm/meminit.h>
 #include <asm/hw_irq.h>
 #include <asm/kexec.h>
+#include <asm/vhpt.h>
 #include <linux/cpu.h>
 #include <linux/cpu.h>
 #include <linux/notifier.h>
@@ -29,7 +31,8 @@ typedef asmlinkage NORET_TYPE void (*rel
                                        unsigned long pal_addr,
                                        unsigned long cpu_data_pa,
                                        unsigned long kernel_start,
-                                       unsigned long page_offset)
+                                       unsigned long page_offset,
+                                       unsigned long vhpt)
 #define kexec_flush_icache_page(page)                                  \
@@ -55,6 +58,7 @@ static void ia64_machine_kexec(struct un
        unsigned long cpu_data_pa = (unsigned long)
+       unsigned long vhpt;
        int ii;
        /* Interrupts aren't acceptable while we reboot */
@@ -79,10 +83,12 @@ static void ia64_machine_kexec(struct un
        while (ia64_get_ivr() != IA64_SPURIOUS_INT_VECTOR)
+       vhpt = __va_ul(vcpu_vhpt_maddr(current));
+       BUG_ON(!vhpt);
        rnk = (relocate_new_kernel_t)&code_addr;
        (*rnk)(image->indirection_page, image->start_address, ia64_boot_param,
               GRANULEROUNDDOWN((unsigned long) pal_vaddr), cpu_data_pa,
-              KERNEL_START, PAGE_OFFSET);
+              KERNEL_START, PAGE_OFFSET, vhpt);

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [IA64] Kexec: Zap VHPT in relocate_kernel, Xen patchbot-unstable <=