Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Jan 2013 09:56:06 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r245944 - stable/8/sys/boot/sparc64/loader
Message-ID:  <201301260956.r0Q9u7Y9049099@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Sat Jan 26 09:56:06 2013
New Revision: 245944
URL: http://svnweb.freebsd.org/changeset/base/245944

Log:
  MFC r245697: zfs/sparc64 boot: fix booting after r242230

Modified:
  stable/8/sys/boot/sparc64/loader/main.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/boot/   (props changed)

Modified: stable/8/sys/boot/sparc64/loader/main.c
==============================================================================
--- stable/8/sys/boot/sparc64/loader/main.c	Sat Jan 26 09:55:51 2013	(r245943)
+++ stable/8/sys/boot/sparc64/loader/main.c	Sat Jan 26 09:56:06 2013	(r245944)
@@ -156,6 +156,10 @@ static vm_offset_t heapva;
 static char bootpath[64];
 static phandle_t root;
 
+#ifdef LOADER_ZFS_SUPPORT
+static struct zfs_devdesc zfs_currdev;
+#endif
+
 /*
  * Machine dependent structures that the machine independent
  * loader part uses.
@@ -839,7 +843,6 @@ static void
 sparc64_zfs_probe(void)
 {
 	struct vtoc8 vtoc;
-	struct zfs_devdesc zfs_currdev;
 	char alias[64], devname[sizeof(alias) + sizeof(":x") - 1];
 	char type[sizeof("device_type")];
 	char *bdev, *dev, *odev;
@@ -912,9 +915,6 @@ sparc64_zfs_probe(void)
 		zfs_currdev.root_guid = 0;
 		zfs_currdev.d_dev = &zfs_dev;
 		zfs_currdev.d_type = zfs_currdev.d_dev->dv_type;
-		(void)strncpy(bootpath, zfs_fmtdev(&zfs_currdev),
-		    sizeof(bootpath) - 1);
-		bootpath[sizeof(bootpath) - 1] = '\0';
 	}
 }
 #endif /* LOADER_ZFS_SUPPORT */
@@ -993,10 +993,14 @@ main(int (*openfirm)(void *))
 		if ((*dp)->dv_init != 0)
 			(*dp)->dv_init();
 
-	/*
-	 * Now that sparc64_zfs_probe() might have altered bootpath,
-	 * export it.
-	 */
+#ifdef LOADER_ZFS_SUPPORT
+	if (zfs_currdev.pool_guid != 0) {
+		(void)strncpy(bootpath, zfs_fmtdev(&zfs_currdev),
+		    sizeof(bootpath) - 1);
+		bootpath[sizeof(bootpath) - 1] = '\0';
+	}
+#endif
+
 	env_setenv("currdev", EV_VOLATILE, bootpath,
 	    ofw_setcurrdev, env_nounset);
 	env_setenv("loaddev", EV_VOLATILE, bootpath,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301260956.r0Q9u7Y9049099>