aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen/enlighten.c
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-07-08 18:06:47 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-16 04:59:24 -0400
commit15664f968a95d8fbf4a0d7b462fcc20f88906bb3 (patch)
treef2aad78c561aa0dd3975eff76d9fe8b9a6558650 /arch/x86/xen/enlighten.c
parentcdacc1278b12d929f9a053c245ff3d16eb7af9f8 (diff)
xen64: use set_fixmap for shared_info structure
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: Stephen Tweedie <sct@redhat.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Cc: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/xen/enlighten.c')
-rw-r--r--arch/x86/xen/enlighten.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index f3f11acf7856..dbe3549fad40 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -902,18 +902,11 @@ static __init void xen_pagetable_setup_start(pgd_t *base)
902void xen_setup_shared_info(void) 902void xen_setup_shared_info(void)
903{ 903{
904 if (!xen_feature(XENFEAT_auto_translated_physmap)) { 904 if (!xen_feature(XENFEAT_auto_translated_physmap)) {
905 unsigned long addr = fix_to_virt(FIX_PARAVIRT_BOOTMAP); 905 set_fixmap(FIX_PARAVIRT_BOOTMAP,
906 906 xen_start_info->shared_info);
907 /* 907
908 * Create a mapping for the shared info page. 908 HYPERVISOR_shared_info =
909 * Should be set_fixmap(), but shared_info is a machine 909 (struct shared_info *)fix_to_virt(FIX_PARAVIRT_BOOTMAP);
910 * address with no corresponding pseudo-phys address.
911 */
912 set_pte_mfn(addr,
913 PFN_DOWN(xen_start_info->shared_info),
914 PAGE_KERNEL);
915
916 HYPERVISOR_shared_info = (struct shared_info *)addr;
917 } else 910 } else
918 HYPERVISOR_shared_info = 911 HYPERVISOR_shared_info =
919 (struct shared_info *)__va(xen_start_info->shared_info); 912 (struct shared_info *)__va(xen_start_info->shared_info);
@@ -1050,8 +1043,13 @@ static void xen_set_fixmap(unsigned idx, unsigned long phys, pgprot_t prot)
1050#ifdef CONFIG_X86_F00F_BUG 1043#ifdef CONFIG_X86_F00F_BUG
1051 case FIX_F00F_IDT: 1044 case FIX_F00F_IDT:
1052#endif 1045#endif
1046#ifdef CONFIG_X86_32
1053 case FIX_WP_TEST: 1047 case FIX_WP_TEST:
1054 case FIX_VDSO: 1048 case FIX_VDSO:
1049 case FIX_KMAP_BEGIN ... FIX_KMAP_END:
1050#else
1051 case VSYSCALL_LAST_PAGE ... VSYSCALL_FIRST_PAGE:
1052#endif
1055#ifdef CONFIG_X86_LOCAL_APIC 1053#ifdef CONFIG_X86_LOCAL_APIC
1056 case FIX_APIC_BASE: /* maps dummy local APIC */ 1054 case FIX_APIC_BASE: /* maps dummy local APIC */
1057#endif 1055#endif