[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [IA64] SMP_HOST: map pal code on smp host
# 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) pal_vaddr), - pte_val(pfn_pte(__pa(pal_vaddr) >> PAGE_SHIFT, PAGE_KERNEL)), - IA64_GRANULE_SHIFT); + } #else void *pal_vaddr = efi_get_pal_addr (); u64 psr; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |