changeset 10321:44087508eb73

6867906 Kernel hangs during boot in startup_bios_disk with snv_120
author lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
date Mon, 17 Aug 2009 12:22:38 +0800
parents 35786983c32a
children ba47e44899a2 3928a1af021c
files usr/src/uts/i86pc/os/ddi_impl.c usr/src/uts/i86pc/os/startup.c
diffstat 2 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/i86pc/os/ddi_impl.c	Mon Aug 17 10:56:59 2009 +0800
+++ b/usr/src/uts/i86pc/os/ddi_impl.c	Mon Aug 17 12:22:38 2009 +0800
@@ -2514,6 +2514,10 @@
 void
 impl_setup_ddi(void)
 {
+#if !defined(__xpv)
+	extern void startup_bios_disk(void);
+	extern int post_fastreboot;
+#endif
 	dev_info_t *xdip, *isa_dip;
 	rd_existing_t rd_mem_prop;
 	int err;
@@ -2555,11 +2559,15 @@
 	 */
 	get_boot_properties();
 
+	/* not framebuffer should be enumerated, if present */
+	get_vga_properties();
+
+#if !defined(__xpv)
+	if (!post_fastreboot)
+		startup_bios_disk();
+#endif
 	/* do bus dependent probes. */
 	impl_bus_initialprobe();
-
-	/* not framebuffer should be enumerated, if present */
-	get_vga_properties();
 }
 
 dev_t
--- a/usr/src/uts/i86pc/os/startup.c	Mon Aug 17 10:56:59 2009 +0800
+++ b/usr/src/uts/i86pc/os/startup.c	Mon Aug 17 12:22:38 2009 +0800
@@ -668,7 +668,6 @@
 startup(void)
 {
 #if !defined(__xpv)
-	extern void startup_bios_disk(void);
 	extern void startup_pci_bios(void);
 	extern int post_fastreboot;
 #endif
@@ -706,10 +705,7 @@
 	startup_xen_mca();
 #endif
 	startup_modules();
-#if !defined(__xpv)
-	if (!post_fastreboot)
-		startup_bios_disk();
-#endif
+
 	startup_end();
 	progressbar_start();
 }