aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen/enlighten.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/xen/enlighten.c')
-rw-r--r--arch/x86/xen/enlighten.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 0b7553cbc529..bd74229081c3 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -168,7 +168,9 @@ static void __init xen_banner(void)
168{ 168{
169 printk(KERN_INFO "Booting paravirtualized kernel on %s\n", 169 printk(KERN_INFO "Booting paravirtualized kernel on %s\n",
170 pv_info.name); 170 pv_info.name);
171 printk(KERN_INFO "Hypervisor signature: %s\n", xen_start_info->magic); 171 printk(KERN_INFO "Hypervisor signature: %s%s\n",
172 xen_start_info->magic,
173 xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
172} 174}
173 175
174static void xen_cpuid(unsigned int *ax, unsigned int *bx, 176static void xen_cpuid(unsigned int *ax, unsigned int *bx,
@@ -1243,6 +1245,8 @@ asmlinkage void __init xen_start_kernel(void)
1243 1245
1244 BUG_ON(memcmp(xen_start_info->magic, "xen-3", 5) != 0); 1246 BUG_ON(memcmp(xen_start_info->magic, "xen-3", 5) != 0);
1245 1247
1248 xen_setup_features();
1249
1246 /* Install Xen paravirt ops */ 1250 /* Install Xen paravirt ops */
1247 pv_info = xen_info; 1251 pv_info = xen_info;
1248 pv_init_ops = xen_init_ops; 1252 pv_init_ops = xen_init_ops;
@@ -1252,14 +1256,17 @@ asmlinkage void __init xen_start_kernel(void)
1252 pv_apic_ops = xen_apic_ops; 1256 pv_apic_ops = xen_apic_ops;
1253 pv_mmu_ops = xen_mmu_ops; 1257 pv_mmu_ops = xen_mmu_ops;
1254 1258
1259 if (xen_feature(XENFEAT_mmu_pt_update_preserve_ad)) {
1260 pv_mmu_ops.ptep_modify_prot_start = xen_ptep_modify_prot_start;
1261 pv_mmu_ops.ptep_modify_prot_commit = xen_ptep_modify_prot_commit;
1262 }
1263
1255 machine_ops = xen_machine_ops; 1264 machine_ops = xen_machine_ops;
1256 1265
1257#ifdef CONFIG_SMP 1266#ifdef CONFIG_SMP
1258 smp_ops = xen_smp_ops; 1267 smp_ops = xen_smp_ops;
1259#endif 1268#endif
1260 1269
1261 xen_setup_features();
1262
1263 /* Get mfn list */ 1270 /* Get mfn list */
1264 if (!xen_feature(XENFEAT_auto_translated_physmap)) 1271 if (!xen_feature(XENFEAT_auto_translated_physmap))
1265 xen_build_dynamic_phys_to_machine(); 1272 xen_build_dynamic_phys_to_machine();