changeset 10698:3ca3c489210e

6844241 Unexpected Trap on AMD Phenom-equipped machines
author Dan Mick <Dan.Mick@Sun.COM>
date Wed, 30 Sep 2009 17:43:46 -0700
parents 57a93d4f0d3c
children 5c59ad6abe2c
files usr/src/uts/i86pc/os/mlsetup.c
diffstat 1 files changed, 16 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/i86pc/os/mlsetup.c	Wed Sep 30 19:35:43 2009 -0400
+++ b/usr/src/uts/i86pc/os/mlsetup.c	Wed Sep 30 17:43:46 2009 -0700
@@ -155,6 +155,22 @@
 		cpuid_feature_edx_exclude = (uint32_t)prop_value;
 
 	/*
+	 * Initialize idt0, gdt0, ldt0_default, ktss0 and dftss.
+	 */
+	init_desctbls();
+
+	/*
+	 * lgrp_init() and possibly cpuid_pass1() need PCI config
+	 * space access
+	 */
+#if defined(__xpv)
+	if (DOMAIN_IS_INITDOMAIN(xen_info))
+		pci_cfgspace_init();
+#else
+	pci_cfgspace_init();
+#endif
+
+	/*
 	 * The first lightweight pass (pass0) through the cpuid data
 	 * was done in locore before mlsetup was called.  Do the next
 	 * pass in C code.
@@ -167,11 +183,6 @@
 	 */
 	x86_feature = cpuid_pass1(cpu[0]);
 
-	/*
-	 * Initialize idt0, gdt0, ldt0_default, ktss0 and dftss.
-	 */
-	init_desctbls();
-
 #if !defined(__xpv)
 
 	if (get_hwenv() == HW_XEN_HVM)
@@ -339,14 +350,6 @@
 
 	cpu_vm_data_init(CPU);
 
-	/* lgrp_init() needs PCI config space access */
-#if defined(__xpv)
-	if (DOMAIN_IS_INITDOMAIN(xen_info))
-		pci_cfgspace_init();
-#else
-	pci_cfgspace_init();
-#endif
-
 	rp->r_fp = 0;	/* terminate kernel stack traces! */
 
 	prom_init("kernel", (void *)NULL);