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] [IA64] SMP_HOST: map pal code on smp host

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [IA64] SMP_HOST: map pal code on smp host
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 02 Mar 2006 12:16:29 +0000
Delivery-date: Thu, 02 Mar 2006 12:20:33 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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 awilliam@xxxxxxxxxxx
# Node ID d940ec92958d62d3c03a92cecb2aa13fb9be5d0d
# Parent  c18c63f87b7d511eb526a1ddd910b3ff6d069f4a
[IA64] SMP_HOST: map pal code on smp host

On up host, only when rr7 is changed, efi_map_pal_code() is called to
remap pal code on new rr7. But on smp host, efi_map_pal_code is also
called to map pal code for other processors, which may not satisfy rr7
change condition, thus pal code may not be mapped in some processors,
while ia64_pal_halt_light called in startup_cpu_idle_loop will cause
machine crash.

Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx>

diff -r c18c63f87b7d -r d940ec92958d xen/arch/ia64/linux-xen/efi.c
--- a/xen/arch/ia64/linux-xen/efi.c     Fri Feb 24 20:38:26 2006
+++ b/xen/arch/ia64/linux-xen/efi.c     Fri Feb 24 21:03:07 2006
@@ -534,32 +534,9 @@
 #ifdef XEN
        u64 psr;
-       static unsigned long last_rr7 = 0;
-       unsigned long current_rr7 = ia64_get_rr(7L<<61);
-       // this routine is called only once in Linux but may be called
-       // multiple times in Xen.  However, we only need to flush and
-       // reset itr[IA64_TR_PALCODE] if rr7 changes
        if (!pal_vaddr) {
                pal_vaddr = efi_get_pal_addr ();
-               last_rr7 = current_rr7;
-       }
-       else if (last_rr7 == current_rr7) return;
-       else {
-               last_rr7 = current_rr7;
-               printk("efi_map_pal_code,remapping pal w/rr7=%lx\n",last_rr7);
-       }
-       printf("efi_map_pal_code: about to ia64_ptr(%d,%p,%p)\n",
-               0x1, GRANULEROUNDDOWN((unsigned long) pal_vaddr),
-                IA64_GRANULE_SHIFT);
-       ia64_ptr(0x1, GRANULEROUNDDOWN((unsigned long) pal_vaddr),
-                IA64_GRANULE_SHIFT);
-       ia64_srlz_i();
-       printf("efi_map_pal_code: about to ia64_itr(%p,%p,%p,%p,%p)\n",
-               0x1, IA64_TR_PALCODE, GRANULEROUNDDOWN((unsigned long) 
-                pte_val(pfn_pte(__pa(pal_vaddr) >> PAGE_SHIFT, PAGE_KERNEL)),
-                IA64_GRANULE_SHIFT);
+       }
        void *pal_vaddr = efi_get_pal_addr ();
        u64 psr;

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [IA64] SMP_HOST: map pal code on smp host, Xen patchbot -unstable <=