changeset 23919:b40114c2395f

Merge branch 'upstream_gate' into upstream_merge/2021010201 commit 4bba12ca5c 13368 libbe_py should support temporary BE activation commit 1473b8d60e 13388 ZFS list bookmark not working on zvols commit 58d4b16fe6 13355 remove topo module warning gags commit c6a28d7650 13394 fhc: case value '4294967295' not in enumerated type commit 58b55f701e 13398 libstand: xdrproc_t should return bool commit 5e96da73c9 13391 fm: build errors with gcc 7 on SPARC commit f816551bb1 13401 eeprom: 'lv' may be used uninitialized in this function commit 174b8e455f 13311 uptime(1) dazed and confused for a minute after boot commit d20422bd74 13351 loader: vbe_find_mode_xydm() is using wrong safety and iteration is buggy commit 9b0429a10e 13339 Add support for Hygon Dhyana Family 18h processor commit 1575b751c1 13392 px: case value '3' not in enumerated type commit 99308ed041 13396 PoolsExecption typo in resource pools javadoc commit 436b964b19 13402 zpool: symbol 'g_zfs' is multiply-defined commit 8247326397 13403 zfs: symbol 'g_zfs' is multiply-defined commit 56870e8c76 13393 cheetah: case value '47616' not in enumerated type commit ef96fc31fc 13399 zfs: error: implicit conversion from 'boolean_t' to 'ds_hold_flags_t' commit 9f76c6ed5b 13400 zfs-tests: implicit conversion from 'enum dmu_objset_type' to 'enum lzc_dataset_type' commit 0a554e9f2c 13404 man page spelling errors Conflicts: usr/src/man/man4/process.4
author Dominik Hassler <hadfl@omnios.org>
date Sat, 02 Jan 2021 16:02:29 +0100
parents ed49722136bb (current diff) f3c8f3a2a25c (diff)
children e329c73b7f3d
files usr/src/cmd/zpool/zpool_main.c usr/src/man/man4/process.4 usr/src/uts/i86pc/os/cpuid.c usr/src/uts/i86pc/os/hma.c usr/src/uts/i86pc/os/startup.c usr/src/uts/intel/sys/x86_archext.h
diffstat 79 files changed, 431 insertions(+), 607 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/boot/Makefile.version	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/boot/Makefile.version	Sat Jan 02 16:02:29 2021 +0100
@@ -34,4 +34,4 @@
 # Use date like formatting here, YYYY.MM.DD.XX, without leading zeroes.
 # The version is processed from left to right, the version number can only
 # be increased.
-BOOT_VERSION = $(LOADER_VERSION)-2020.12.07.1
+BOOT_VERSION = $(LOADER_VERSION)-2020.12.11.1
--- a/usr/src/boot/lib/libstand/zfs/nvlist.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/boot/lib/libstand/zfs/nvlist.c	Sat Jan 02 16:02:29 2021 +0100
@@ -55,7 +55,7 @@
 static bool xdr_int(xdr_t *, int *);
 static bool xdr_u_int(xdr_t *, unsigned *);
 
-typedef int (*xdrproc_t)(xdr_t *, void *);
+typedef bool (*xdrproc_t)(xdr_t *, void *);
 
 /* Basic primitives for XDR translation operations, getint and putint. */
 static int
--- a/usr/src/boot/sys/boot/i386/libi386/vbe.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/boot/sys/boot/i386/libi386/vbe.c	Sat Jan 02 16:02:29 2021 +0100
@@ -51,6 +51,10 @@
 /* The default VGA color palette format is 6 bits per primary color. */
 int palette_format = 6;
 
+#define	VESA_MODE_BASE	0x100
+#define	VESA_MODE_MAX	0x1ff
+#define	VESA_MODE_COUNT	(VESA_MODE_MAX - VESA_MODE_BASE + 1)
+
 /* Actually assuming mode 3. */
 void
 bios_set_text_mode(int mode)
@@ -458,7 +462,7 @@
 	struct modeinfoblock mi;
 	uint32_t farptr;
 	uint16_t mode;
-	int safety = 0, i;
+	int safety, i;
 
 	memset(vbe, 0, sizeof (vbe));
 	memcpy(vbe->VbeSignature, "VBE2", 4);
@@ -466,8 +470,7 @@
 		return (0);
 	if (memcmp(vbe->VbeSignature, "VESA", 4) != 0)
 		return (0);
-	farptr = vbe->VideoModePtr;
-	if (farptr == 0)
+	if (vbe->VideoModePtr == 0)
 		return (0);
 
 	if (m != -1)
@@ -478,10 +481,12 @@
 		i = depth;
 
 	while (i > 0) {
+		farptr = vbe->VideoModePtr;
+		safety = 0;
 		while ((mode = *(uint16_t *)vbe_farptr(farptr)) != 0xffff) {
 			safety++;
 			farptr += 2;
-			if (safety == 100)
+			if (safety == VESA_MODE_COUNT)
 				return (0);
 			if (biosvbe_get_mode_info(mode, &mi) != VBE_SUCCESS) {
 				continue;
@@ -489,7 +494,6 @@
 			/* we only care about linear modes here */
 			if (vbe_mode_is_supported(&mi) == 0)
 				continue;
-			safety = 0;
 
 			if (m != -1) {
 				if (m == mode)
@@ -675,7 +679,7 @@
 	while ((mode = *(uint16_t *)vbe_farptr(farptr)) != 0xffff) {
 		safety++;
 		farptr += 2;
-		if (safety == 100) {
+		if (safety == VESA_MODE_COUNT) {
 			printf("[?] ");
 			break;
 		}
@@ -921,7 +925,7 @@
 		return (CMD_ERROR);
 	}
 
-	if (modenum >= 0x100) {
+	if (modenum >= VESA_MODE_BASE) {
 		if (vbestate.vbe_mode != modenum) {
 			reset_font_flags();
 			bios_text_font(false);
--- a/usr/src/cmd/eeprom/i386/benv.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/eeprom/i386/benv.c	Sat Jan 02 16:02:29 2021 +0100
@@ -748,7 +748,7 @@
 		int32_t lv;
 		int16_t v;
 
-		v = strtol(value, &end, 0);
+		lv = strtol(value, &end, 0);
 		if (errno != 0 || *end != '\0')
 			goto done;
 		if (lv < INT16_MIN || lv > INT16_MAX)
--- a/usr/src/cmd/fm/modules/sun4u/cpumem-diagnosis/cmd_Lxcacheerr.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/fm/modules/sun4u/cpumem-diagnosis/cmd_Lxcacheerr.c	Sat Jan 02 16:02:29 2021 +0100
@@ -377,10 +377,10 @@
 
 static cmd_evdisp_t
 extract_data_from_ereport_payload(fmd_hdl_t *hdl, nvlist_t *nvl,
-				    cmd_cpu_t *cpu,
-				    cmd_ptrsubtype_t pstype,
-				    uint64_t *afarp, uint64_t *tag_data,
-				    const char *fltnm)
+    cmd_cpu_t *cpu,
+    cmd_ptrsubtype_t pstype,
+    uint64_t *afarp, uint64_t *tag_data,
+    const char *fltnm)
 {
 	ch_ec_data_t	*ec_data;
 	char		*payload_namep;
@@ -472,19 +472,15 @@
 
 static void
 gen_data_for_ecc(uint64_t *tag_data, uint64_t *data_for_ecc_gen,
-		    cmd_ptrsubtype_t pstype)
+    cmd_ptrsubtype_t pstype)
 {
 	uint64_t	ptag[PN_CACHE_NWAYS];
 	uint8_t		state[PN_CACHE_NWAYS];
 	int		i;
-	uint16_t	tag_ecc[PN_CACHE_NWAYS];
 	uint8_t		bit_position;
 
 	for (i = 0; i < PN_CACHE_NWAYS; i++) {
 		state[i] = tag_data[i] & CH_ECSTATE_MASK;
-		tag_ecc[i] =
-		    ((tag_data[i] & PN_TAG_ECC_MASK)
-		    >> PN_LX_TAG_ECC_START_BIT);
 		switch (pstype) {
 			case CMD_PTR_CPU_L2TAG:
 				ptag[i] = (tag_data[i] >> PN_L2_PTAG_SHIFT) &
@@ -603,7 +599,7 @@
 
 static cmd_Lxcache_t *
 cmd_create_and_destroy_Lxcache(fmd_hdl_t *hdl, cmd_cpu_t *cpu,
-	cmd_Lxcache_t *Lxcache)
+    cmd_Lxcache_t *Lxcache)
 {
 	const char		*fltnm;
 	cmd_Lxcache_t	*new_Lxcache;
@@ -954,9 +950,9 @@
 
 cmd_evdisp_t
 cmd_us4plus_tag_err(fmd_hdl_t *hdl, fmd_event_t *ep, nvlist_t *nvl,
-		cmd_cpu_t *cpu, cmd_ptrsubtype_t pstype,
-		const char *serdn, const char *serdt,
-		const char *fltnm, cmd_errcl_t clcode)
+    cmd_cpu_t *cpu, cmd_ptrsubtype_t pstype,
+    const char *serdn, const char *serdt,
+    const char *fltnm, cmd_errcl_t clcode)
 {
 	uint64_t	tag_afar;
 	int32_t	index;
@@ -1576,7 +1572,7 @@
 }
 
 /* add to cheetahregs.h */
-#define	CH_ECSTATE_NA 	5
+#define	CH_ECSTATE_NA	5
 
 static int32_t
 pn_extract_index(int32_t type, uint64_t afar)
@@ -1611,7 +1607,7 @@
  *	If the way is anonomyous, it will attempt to choose a way for the
  *	given index to fault. If the maximum for the index has not been
  *	reached, it will attempt to unretire a different way previously retired
- * 	under suspicion for the index prior to faulting
+ *	under suspicion for the index prior to faulting
  *	the selected way.
  *	The routine will also fault the CPU if the maximum number of
  *	retired ways for the CPU has been exceeded based on the category.
--- a/usr/src/cmd/fm/modules/sun4v/etm/etm.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/fm/modules/sun4v/etm/etm.c	Sat Jan 02 16:02:29 2021 +0100
@@ -3183,8 +3183,8 @@
 						    "error: can't find iosvc "
 						    "for async evnt %d\n",
 						    async_e.event_type);
-					(void) pthread_mutex_unlock(
-					    &iosvc_list_lock);
+						(void) pthread_mutex_unlock(
+						    &iosvc_list_lock);
 						break;
 					}
 
@@ -3197,7 +3197,7 @@
 					 * the ldom name and the msg Q
 					 * remains in iosvc_list
 					 */
-					if (iosvc->ldom_name != '\0')
+					if (*iosvc->ldom_name != '\0')
 						fmd_hdl_debug(fmd_hdl,
 						    "info: iosvc  w/ ldom_name "
 						    "%s \n", iosvc->ldom_name);
--- a/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Component.java	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Component.java	Sat Jan 02 16:02:29 2021 +0100
@@ -23,8 +23,6 @@
  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  *
- *ident	"%Z%%M%	%I%	%E% SMI"
- *
  */
 
 package com.sun.solaris.service.pools;
@@ -147,7 +145,7 @@
 	 * Return the pointer to this component as an element.
 	 *
 	 * @return The pointer to the native component which this object wraps.
-	 * @throws PoolsExecption If there is an error converting the native
+	 * @throws PoolsException If there is an error converting the native
 	 * component pointer to a native elem pointer.
 	 */
 	protected long getElem() throws PoolsException
--- a/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Configuration.java	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Configuration.java	Sat Jan 02 16:02:29 2021 +0100
@@ -23,8 +23,6 @@
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  *
- *ident	"%Z%%M%	%I%	%E% SMI"
- *
  */
 
 package com.sun.solaris.service.pools;
@@ -173,7 +171,7 @@
 	/**
 	 * Remove the configuration.
 	 *
-	 * @throws PoolsExecption If the removal fails.
+	 * @throws PoolsException If the removal fails.
 	 */
 	public void remove() throws PoolsException
 	{
@@ -187,7 +185,7 @@
 	 * made since the last commit or (if there are no commits) since the
 	 * configuration was opened.
 	 *
-	 * @throws PoolsExecption If the rollback fails.
+	 * @throws PoolsException If the rollback fails.
 	 */
 	public void rollback() throws PoolsException
 	{
@@ -201,7 +199,7 @@
 	 * was last committed (or opened if there have been no prior commits)
 	 * permanent.
 	 *
-	 * @throws PoolsExecption If the commit fails.
+	 * @throws PoolsException If the commit fails.
 	 */
 	public void commit(int active) throws PoolsException
 	{
@@ -216,7 +214,7 @@
 	 *
 	 * @param location The location of the export.
 	 * @param format The format of the export.
-	 * @throws PoolsExecption If the export fails.
+	 * @throws PoolsException If the export fails.
 	 */
 	public void export(String location, int format) throws PoolsException
 	{
@@ -230,7 +228,7 @@
 	 * configuration satisfies the supplied validation level.
 	 *
 	 * @param level The desired level of validation.
-	 * @throws PoolsExecption If the validation fails.
+	 * @throws PoolsException If the validation fails.
 	 */
 	public void validate(int level) throws PoolsException
 	{
@@ -243,7 +241,7 @@
 	 * Update the configuration, ensuring that the current state of the
 	 * configuration reflects that of the kernel.
 	 *
-	 * @throws PoolsExecption If the update fails.
+	 * @throws PoolsException If the update fails.
 	 * @return a bitmap of the changed types.
 	 */
 	public int update() throws PoolsException
@@ -255,7 +253,7 @@
 	 * Create a pool with the supplied name.
 	 *
 	 * @param name The name of the PoolInternal.
-	 * @throws PoolsExecption If the pool creation fails.
+	 * @throws PoolsException If the pool creation fails.
 	 * @return a pool with the supplied name.
 	 */
 	public Pool createPool(String name) throws PoolsException
@@ -286,7 +284,7 @@
 	 * Get the pool with the supplied name.
 	 *
 	 * @param name The name of the pool to be found.
-	 * @throws PoolsExecption If the pool cannot be located.
+	 * @throws PoolsException If the pool cannot be located.
 	 * @return a pool with the supplied name.
 	 */
 	public Pool getPool(String name) throws PoolsException
@@ -304,13 +302,13 @@
 			elements.put(p.getKey(), p);
 			return (p);
 		}
-	}	
+	}
 
 	/**
 	 * Get the proxy for the pool with the supplied name.
 	 *
 	 * @param name The name of the pool to be found.
-	 * @throws PoolsExecption If the pool cannot be located.
+	 * @throws PoolsException If the pool cannot be located.
 	 * @return the proxy for the pool with the supplied name.
 	 */
 	long checkPool(String name) throws PoolsException
@@ -322,14 +320,14 @@
 			throw new PoolsException();
 		}
 		return (aPool);
-	}	
+	}
 
 	/**
 	 * Get a list of pools which match the supplied selection criteria
 	 * in values.
 	 *
 	 * @param values A list of values to be used to qualify the search.
-	 * @throws PoolsExecption If there is an error executing the query.
+	 * @throws PoolsException If there is an error executing the query.
 	 * @return a list of pools which match the supplied criteria
 	 */
 	public List getPools(List values) throws PoolsException
@@ -350,13 +348,13 @@
 			    ((Long)pools.get(i)).longValue()));
 		return (aList);
 	}
-	
+
 	/**
 	 * Create a resource with the supplied type and name.
 	 *
 	 * @param type The type of the resource.
 	 * @param name The name of the resource.
-	 * @throws PoolsExecption If the resource creation fails.
+	 * @throws PoolsException If the resource creation fails.
 	 * @return a resource of the supplied type and name.
 	 */
 	public Resource createResource(String type, String name)
@@ -391,7 +389,7 @@
 	 *
 	 * @param type The type of the resource to be found.
 	 * @param name The name of the resource to be found.
-	 * @throws PoolsExecption If the resource cannot be located.
+	 * @throws PoolsException If the resource cannot be located.
 	 * @return a resource with the supplied name.
 	 */
 	public Resource getResource(String type, String name)
@@ -410,7 +408,7 @@
 			elements.put(r.getKey(), r);
 			return (r);
 		}
-	}	
+	}
 
 	/**
 	 * Get the proxy for the resource with the supplied type and
@@ -418,7 +416,7 @@
 	 *
 	 * @param type The type of the resource to be found.
 	 * @param name The name of the resource to be found.
-	 * @throws PoolsExecption If the resource cannot be located.
+	 * @throws PoolsException If the resource cannot be located.
 	 * @return the proxy for the resource with the supplied name.
 	 */
 	long checkResource(String type, String name) throws PoolsException
@@ -430,14 +428,14 @@
 			throw new PoolsException();
 		}
 		return (res);
-	}	
+	}
 
 	/**
 	 * Get a list of resources which match the supplied selection criteria
 	 * in values.
 	 *
 	 * @param values A list of values to be used to qualify the search.
-	 * @throws PoolsExecption If there is an error executing the query.
+	 * @throws PoolsException If there is an error executing the query.
 	 * @return a list of resources which match the supplied criteria
 	 */
 	public List getResources(List values) throws PoolsException
@@ -464,7 +462,7 @@
 	 *
 	 * @param type The type of the component to be found.
 	 * @param sys_id The sys_id of the component to be found.
-	 * @throws PoolsExecption If the component cannot be located.
+	 * @throws PoolsException If the component cannot be located.
 	 * @return a component with the supplied name.
 	 */
 	public Component getComponent(String type, long sys_id)
@@ -482,14 +480,14 @@
 		if (comps.size() != 1)
 			throw new PoolsException();
 		return ((Component) comps.get(0));
-	}	
+	}
 
 	/**
 	 * Get the component proxy with the supplied type and sys_id.
 	 *
 	 * @param type The type of the component to be found.
 	 * @param sys_id The sys_id of the component to be found.
-	 * @throws PoolsExecption If the component cannot be located.
+	 * @throws PoolsException If the component cannot be located.
 	 * @return a component with the supplied name.
 	 */
 	long checkComponent(String type, long sys_id)
@@ -507,20 +505,20 @@
 		if (comps.size() != 1)
 			throw new PoolsException();
 		return (((Long)comps.get(0)).longValue());
-	}	
+	}
 
 	/**
 	 * Get a list of components which match the supplied selection criteria
 	 * in values.
 	 *
 	 * @param values A list of values to be used to qualify the search.
-	 * @throws PoolsExecption If there is an error executing the query.
+	 * @throws PoolsException If there is an error executing the query.
 	 * @return a list of components which match the supplied criteria
 	 */
 	public List getComponents(List values) throws PoolsException
 	{
 		List components;
-		
+
 		if ((components = PoolInternal.pool_query_components(getConf(),
 		    values)) == null) {
 			if (PoolInternal.pool_error() ==
@@ -556,7 +554,7 @@
 				throw new PoolsException();
 			long sys_id = idValue.getLong();
 			idValue.close();
-				
+
 			if (elements.containsKey(type + "." + sys_id))
 				aList.add((Component)elements.get(type + "." +
 					  sys_id));
@@ -573,7 +571,7 @@
 	 * selection criteria in values.
 	 *
 	 * @param values A list of values to be used to qualify the search.
-	 * @throws PoolsExecption If there is an error executing the query.
+	 * @throws PoolsException If there is an error executing the query.
 	 * @return a list of component proxies which match the
 	 * supplied criteria
 	 */
@@ -649,13 +647,13 @@
 	{
 		return name.hashCode();
 	}
-	
+
 	/**
 	 * Return the pointer to this configuration as an element.
 	 *
 	 * @return The pointer to the native configuration which this object
 	 * wraps.
-	 * @throws PoolsExecption If there is an error converting the native
+	 * @throws PoolsException If there is an error converting the native
 	 * configuration pointer to a native elem pointer.
 	 */
 	protected long getElem() throws PoolsException
@@ -668,7 +666,7 @@
 	}
 
 	/**
-	 * Return the anme of the configuration.
+	 * Return the name of the configuration.
 	 */
 	String getName()
 	{
--- a/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Element.java	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Element.java	Sat Jan 02 16:02:29 2021 +0100
@@ -84,7 +84,7 @@
 	 * Get the property with the supplied name.
 	 *
 	 * @param name The name of the property to be retrieved.
-	 * @throws PoolsExecption If there is an error accessing the property.
+	 * @throws PoolsException If there is an error accessing the property.
 	 * @return a value containing the property details.
 	 */
         private Value getProperty(String name) throws PoolsException
@@ -113,7 +113,7 @@
 	 *
 	 * @param name The name of the property to be retrieved.
 	 * @param proxy The proxy item used to retrieve the property.
-	 * @throws PoolsExecption If there is an error accessing the property.
+	 * @throws PoolsException If there is an error accessing the property.
 	 * @return a value containing the property details.
 	 */
         protected Value getProperty(String name, long proxy)
@@ -143,7 +143,7 @@
 	 *
 	 * @param name The name of the property to be updated.
 	 * @param value The value of the property to be updated.
-	 * @throws PoolsExecption If there is an error accessing the property.
+	 * @throws PoolsException If there is an error accessing the property.
 	 */
         public void putProperty(String name, Value value) throws PoolsException
 	{
@@ -156,7 +156,7 @@
 	 * Remove the element property with the supplied name.
 	 *
 	 * @param name The name of the property to be removed.
-	 * @throws PoolsExecption If there is an error removing the property.
+	 * @throws PoolsException If there is an error removing the property.
 	 */
         public void rmProperty(String name) throws PoolsException
 	{
@@ -259,7 +259,7 @@
 	 * @param elem The element to whom the property belongs.
 	 * @param val The value representing the current element.
 	 * @param user User supplied data, provided when the walk is invoked.
-	 * @throws PoolsExecption If there is an error walking the property.
+	 * @throws PoolsException If there is an error walking the property.
 	 * @return 0 to continue the walk, anything else to terminate it.
 	 */
 	public int walk(Element elem, Value val, Object user)
@@ -275,7 +275,7 @@
 	 * Return the pointer to this subtype as an element.
 	 *
 	 * @return The pointer to the native subtype which this object wraps.
-	 * @throws PoolsExecption If there is an error converting the native
+	 * @throws PoolsException If there is an error converting the native
 	 * subtype pointer to a native elem pointer.
 	 */
 	protected abstract long getElem() throws PoolsException;
@@ -286,7 +286,7 @@
 	 * @param handler The object which will receive the callbacks.
 	 * @param user Data supplied by the user for use in the callback.
 	 * @return 0 for a successful walk, else 1.
-	 * @throws PoolsExecption If there is an error during the walk.
+	 * @throws PoolsException If there is an error during the walk.
 	 */
 	public int walkProperties(PropertyWalk handler, Object user)
 	    throws PoolsException
--- a/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Pool.java	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Pool.java	Sat Jan 02 16:02:29 2021 +0100
@@ -23,8 +23,6 @@
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  *
- *ident	"%Z%%M%	%I%	%E% SMI"
- *
  */
 
 package com.sun.solaris.service.pools;
@@ -108,7 +106,7 @@
 	 * searched.
 	 *
 	 * @param values A list of values to be used to qualify the search.
-	 * @throws PoolsExecption If there is an error executing the query.
+	 * @throws PoolsException If there is an error executing the query.
 	 * @return a list of resources which match the supplied criteria
 	 */
 	public List getResources(List values) throws PoolsException
@@ -195,7 +193,7 @@
 	 * Return the pointer to this pool as an element.
 	 *
 	 * @return The pointer to the native pool which this object wraps.
-	 * @throws PoolsExecption If there is an error converting the native
+	 * @throws PoolsException If there is an error converting the native
 	 * pool pointer to a native elem pointer.
 	 */
 	protected long getElem() throws PoolsException
--- a/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Property.java	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Property.java	Sat Jan 02 16:02:29 2021 +0100
@@ -23,15 +23,13 @@
  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  *
- *ident	"%Z%%M%	%I%	%E% SMI"
- *
  */
 
 package com.sun.solaris.service.pools;
 
 /**
  * The <code>Property</code> interface specifies the contract between
- * a pools configuration element and it's properties. This interface
+ * a pools configuration element and its properties. This interface
  * must be implemented by all pools configuration elements to ensure that
  * properties can be manipulated.
  */
@@ -41,7 +39,7 @@
 	 * Get a property with the supplied name.
 	 *
 	 * @param name The name of the property to be retrieved.
-	 * @throws PoolsExecption If there is an error accessing the property.
+	 * @throws PoolsException If there is an error accessing the property.
 	 */
 	public boolean getBoolProperty(String name) throws PoolsException;
 
@@ -49,7 +47,7 @@
 	 * Get a property with the supplied name.
 	 *
 	 * @param name The name of the property to be retrieved.
-	 * @throws PoolsExecption If there is an error accessing the property.
+	 * @throws PoolsException If there is an error accessing the property.
 	 */
 	public double getDoubleProperty(String name) throws PoolsException;
 
@@ -57,7 +55,7 @@
 	 * Get a property with the supplied name.
 	 *
 	 * @param name The name of the property to be retrieved.
-	 * @throws PoolsExecption If there is an error accessing the property.
+	 * @throws PoolsException If there is an error accessing the property.
 	 */
 	public long getLongProperty(String name) throws PoolsException;
 
@@ -65,7 +63,7 @@
 	 * Get a property with the supplied name.
 	 *
 	 * @param name The name of the property to be retrieved.
-	 * @throws PoolsExecption If there is an error accessing the property.
+	 * @throws PoolsException If there is an error accessing the property.
 	 */
 	public String getStringProperty(String name) throws PoolsException;
 
@@ -74,7 +72,7 @@
 	 *
 	 * @param name The name of the property to be updated.
 	 * @param value The value of the property to be updated.
-	 * @throws PoolsExecption If there is an error accessing the property.
+	 * @throws PoolsException If there is an error accessing the property.
 	 */
 	public void putProperty(String name, Value value) throws PoolsException;
 
@@ -82,7 +80,7 @@
 	 * Remove the property with the supplied name.
 	 *
 	 * @param name The name of the property to be removed.
-	 * @throws PoolsExecption If there is an error removing the property.
+	 * @throws PoolsException If there is an error removing the property.
 	 */
 	public void rmProperty(String name) throws PoolsException;
 }
--- a/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/PropertyWalk.java	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/PropertyWalk.java	Sat Jan 02 16:02:29 2021 +0100
@@ -23,8 +23,6 @@
  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  *
- *ident	"%Z%%M%	%I%	%E% SMI"
- *
  */
 
 package com.sun.solaris.service.pools;
@@ -40,12 +38,12 @@
 
 public interface PropertyWalk {
 	/**
-	 * Walk all properties of the invoking object, calling the 
+	 * Walk all properties of the invoking object, calling the
 	 *
 	 * @param elem The element to whom the property belongs.
 	 * @param val The value representing the current element.
 	 * @param user User supplied data, provided when the walk is invoked.
-	 * @throws PoolsExecption If there is an error walking the property.
+	 * @throws PoolsException If there is an error walking the property.
 	 * @return 0 to continue the walk, anything else to terminate it.
 	 */
 	public int walk(Element elem, Value val, Object user)
--- a/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Resource.java	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Resource.java	Sat Jan 02 16:02:29 2021 +0100
@@ -22,8 +22,6 @@
 /*
  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
- *
- *ident	"%Z%%M%	%I%	%E% SMI"
  */
 
 package com.sun.solaris.service.pools;
@@ -69,7 +67,7 @@
 	}
 
         /**
-         * Returns a pointer to the native resouce represented by this resource
+         * Returns a pointer to the native resource represented by this resource
 	 * object.
          *
 	 * @throws PoolsException If the pool cannot be located.
@@ -96,7 +94,7 @@
 		    donor.getResource(), getResource(), qty) !=
 		    PoolInternal.PO_SUCCESS)
 			throw new PoolsException();
-	}		
+	}
 
         /**
          * Transfer the specified resource components from the donor to this
@@ -114,7 +112,7 @@
 		    donor.getResource(), getResource(), components) !=
 		    PoolInternal.PO_SUCCESS)
 			throw new PoolsException();
-	}		
+	}
 
 	/**
 	 * Get a list of components which match the supplied selection
@@ -122,7 +120,7 @@
 	 * this resource are searched.
 	 *
 	 * @param values A list of values to be used to qualify the search.
-	 * @throws PoolsExecption If there is an error executing the query.
+	 * @throws PoolsException If there is an error executing the query.
 	 * @return a list of components which match the supplied criteria
 	 */
 	public List getComponents(List values) throws PoolsException
@@ -211,7 +209,7 @@
 	 * Return the pointer to this resource as an element.
 	 *
 	 * @return The pointer to the native resource which this object wraps.
-	 * @throws PoolsExecption If there is an error converting the native
+	 * @throws PoolsException If there is an error converting the native
 	 * resource pointer to a native elem pointer.
 	 */
 	protected long getElem() throws PoolsException
--- a/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Value.java	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/pools/poold/com/sun/solaris/service/pools/Value.java	Sat Jan 02 16:02:29 2021 +0100
@@ -219,7 +219,7 @@
 	 * Set this value to take the supplied string value.
 	 *
 	 * @param value The value to which this value should be set.
-	 * @throws PoolsExecption If the setting of the value fails.
+	 * @throws PoolsException If the setting of the value fails.
 	 */
 	public void setValue(String value) throws PoolsException
 	{
--- a/usr/src/cmd/w/w.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/w/w.c	Sat Jan 02 16:02:29 2021 +0100
@@ -307,12 +307,13 @@
 				if (hrs > 0 && mins > 0) {
 					PRINTF((" %2d:%02d,", hrs, mins));
 				} else {
-					if (hrs > 0)
+					if (hrs > 0) {
 						PRINTF((gettext(
 						    " %d hr(s),"), hrs));
-					if (mins > 0)
+					} else { /* mins can be zero */
 						PRINTF((gettext(
 						    " %d min(s),"), mins));
+					}
 				}
 			}
 		}
--- a/usr/src/cmd/zfs/zfs_iter.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/zfs/zfs_iter.c	Sat Jan 02 16:02:29 2021 +0100
@@ -445,13 +445,13 @@
 
 		/*
 		 * If we're recursive, then we always allow filesystems as
-		 * arguments.  If we also are interested in snapshots, then we
-		 * can take volumes as well.
+		 * arguments.  If we also are interested in snapshots or
+		 * bookmarks, then we can take volumes as well.
 		 */
 		argtype = types;
 		if (flags & ZFS_ITER_RECURSE) {
 			argtype |= ZFS_TYPE_FILESYSTEM;
-			if (types & ZFS_TYPE_SNAPSHOT)
+			if (types & (ZFS_TYPE_SNAPSHOT | ZFS_TYPE_BOOKMARK))
 				argtype |= ZFS_TYPE_VOLUME;
 		}
 
--- a/usr/src/cmd/zfs/zfs_util.h	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/zfs/zfs_util.h	Sat Jan 02 16:02:29 2021 +0100
@@ -31,9 +31,9 @@
 extern "C" {
 #endif
 
-void * safe_malloc(size_t size);
-void nomem(void);
-libzfs_handle_t *g_zfs;
+extern void * safe_malloc(size_t size);
+extern void nomem(void);
+extern libzfs_handle_t *g_zfs;
 
 #ifdef	__cplusplus
 }
--- a/usr/src/cmd/zpool/zpool_main.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/zpool/zpool_main.c	Sat Jan 02 16:02:29 2021 +0100
@@ -69,6 +69,8 @@
 
 #include "statcommon.h"
 
+libzfs_handle_t *g_zfs;
+
 static int zpool_do_create(int, char **);
 static int zpool_do_destroy(int, char **);
 
--- a/usr/src/cmd/zpool/zpool_util.h	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/cmd/zpool/zpool_util.h	Sat Jan 02 16:02:29 2021 +0100
@@ -35,44 +35,44 @@
 /*
  * Basic utility functions
  */
-void *safe_malloc(size_t);
-void zpool_no_memory(void);
-uint_t num_logs(nvlist_t *nv);
-uint64_t array64_max(uint64_t array[], unsigned int len);
-int highbit64(uint64_t i);
-int lowbit64(uint64_t i);
-int isnumber(char *str);
+extern void *safe_malloc(size_t);
+extern void zpool_no_memory(void);
+extern uint_t num_logs(nvlist_t *nv);
+extern uint64_t array64_max(uint64_t array[], unsigned int len);
+extern int highbit64(uint64_t i);
+extern int lowbit64(uint64_t i);
+extern int isnumber(char *str);
 
 /*
  * Virtual device functions
  */
 
-nvlist_t *make_root_vdev(zpool_handle_t *zhp, nvlist_t *props, int force,
+extern nvlist_t *make_root_vdev(zpool_handle_t *zhp, nvlist_t *props, int force,
     int check_rep, boolean_t replacing, boolean_t dryrun,
     zpool_boot_label_t boot_type, uint64_t boot_size, int argc, char **argv);
-nvlist_t *split_mirror_vdev(zpool_handle_t *zhp, char *newname,
+extern nvlist_t *split_mirror_vdev(zpool_handle_t *zhp, char *newname,
     nvlist_t *props, splitflags_t flags, int argc, char **argv);
 
 /*
  * Pool list functions
  */
-int for_each_pool(int, char **, boolean_t unavail, zprop_list_t **,
+extern int for_each_pool(int, char **, boolean_t unavail, zprop_list_t **,
     zpool_iter_f, void *);
 
 /* Vdev list functions */
 typedef int (*pool_vdev_iter_f)(zpool_handle_t *, nvlist_t *, void *);
-int for_each_vdev(zpool_handle_t *zhp, pool_vdev_iter_f func, void *data);
+extern int for_each_vdev(zpool_handle_t *, pool_vdev_iter_f, void *);
 
 typedef struct zpool_list zpool_list_t;
 
-zpool_list_t *pool_list_get(int, char **, zprop_list_t **, int *);
-void pool_list_update(zpool_list_t *);
-int pool_list_iter(zpool_list_t *, int unavail, zpool_iter_f, void *);
-void pool_list_free(zpool_list_t *);
-int pool_list_count(zpool_list_t *);
-void pool_list_remove(zpool_list_t *, zpool_handle_t *);
+extern zpool_list_t *pool_list_get(int, char **, zprop_list_t **, int *);
+extern void pool_list_update(zpool_list_t *);
+extern int pool_list_iter(zpool_list_t *, int unavail, zpool_iter_f, void *);
+extern void pool_list_free(zpool_list_t *);
+extern int pool_list_count(zpool_list_t *);
+extern void pool_list_remove(zpool_list_t *, zpool_handle_t *);
 
-libzfs_handle_t *g_zfs;
+extern libzfs_handle_t *g_zfs;
 
 #ifdef	__cplusplus
 }
--- a/usr/src/lib/fm/topo/modules/Makefile.plugin	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/lib/fm/topo/modules/Makefile.plugin	Sat Jan 02 16:02:29 2021 +0100
@@ -55,9 +55,6 @@
 plat_ROOTCONF = $(PLATFORMS:%=$(ROOT)/usr/platform/%/lib/fm/topo/plugins/$(CONF))
 ROOTCONF = $($(CLASS)_ROOTCONF)
 
-CERRWARN += $(CNOWARN_UNINIT)
-CERRWARN += -_gcc=-Wno-parentheses
-
 APIMAP = ../../../libtopo/common/topo_mod.map
 MAPFILES =		# use APIMAP instead
 
--- a/usr/src/lib/fm/topo/modules/common/disk/disk_common.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/lib/fm/topo/modules/common/disk/disk_common.c	Sat Jan 02 16:02:29 2021 +0100
@@ -1165,6 +1165,7 @@
 	 */
 	if (nvlist_lookup_string(in_nvl, "path", &fullpath) == 0) {
 		devpath = NULL;
+		pathlen = 0;
 	} else {
 		/*
 		 * Get the /devices path and attempt to open the disk status
--- a/usr/src/lib/fm/topo/modules/common/ipmi/ipmi_enum.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/lib/fm/topo/modules/common/ipmi/ipmi_enum.c	Sat Jan 02 16:02:29 2021 +0100
@@ -451,6 +451,12 @@
 	case IPMI_ET_FAN:
 		labelname = "FAN";
 		break;
+
+	default:
+		topo_mod_dprintf(mod, "unknown entity type, %u: cannot set "
+		    "label name", edp->ed_entity);
+		nvlist_free(fmri);
+		return (1);
 	}
 
 	len = strlen(label);
--- a/usr/src/lib/fm/topo/modules/common/pcibus/pcibus.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/lib/fm/topo/modules/common/pcibus/pcibus.c	Sat Jan 02 16:02:29 2021 +0100
@@ -671,7 +671,7 @@
 	tnode_t *fn;
 	uint_t class, subclass;
 	uint_t vid, did;
-	uint_t pdev_sz;
+	uint_t pdev_sz = 0;
 	did_t *dp = NULL;
 
 	if (*dev == NULL) {
--- a/usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c	Sat Jan 02 16:02:29 2021 +0100
@@ -127,7 +127,7 @@
 					topo_mod_dprintf(mod,
 					    "%s: calling test function=%p\n",
 					    __func__, rw.srw_test);
-					if (ret = rw.srw_test(mod, dp))
+					if ((ret = rw.srw_test(mod, dp)) != 0)
 						rlabel = rw.srw_new;
 					topo_mod_dprintf(mod,
 					    "%s: test function return=%d\n",
@@ -192,7 +192,7 @@
 					topo_mod_dprintf(mod,
 					    "%s: calling test function=%p\n",
 					    __func__, m.dl_test);
-					if (ret = m.dl_test(mod, dp))
+					if ((ret = m.dl_test(mod, dp)) != 0)
 						rlabel = m.dl_label;
 					topo_mod_dprintf(mod,
 					    "%s: test function return=%d\n",
@@ -222,7 +222,7 @@
 {
 	tnode_t *anode, *apnode;
 	did_t *adp, *apdp;
-	char *plat, *pp, *l, *ancestor_l = NULL, *new_l = NULL;
+	char *plat, *pp, *l = NULL, *ancestor_l = NULL, *new_l = NULL;
 	int err, b, d, f, done = 0;
 	size_t len;
 
--- a/usr/src/lib/fm/topo/modules/common/shared/topo_sensor.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/lib/fm/topo/modules/common/shared/topo_sensor.c	Sat Jan 02 16:02:29 2021 +0100
@@ -260,7 +260,7 @@
 	    reader_arg, &err) != 0) {
 		topo_mod_dprintf(mod, "failed to set argument for sensor %s: "
 		    "%s", path, topo_strerror(err));
-		err = topo_mod_seterrno(mod, err);
+		ret = topo_mod_seterrno(mod, err);
 		goto out;
 	}
 
--- a/usr/src/lib/fm/topo/modules/i86pc/chip/chip_amd.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/lib/fm/topo/modules/i86pc/chip/chip_amd.c	Sat Jan 02 16:02:29 2021 +0100
@@ -467,10 +467,10 @@
 	nvlist_t *fmri, **dimmarr = NULL;
 	uint64_t num;
 	uint_t ndimm;
-	id_t smbid;
-	const char *serial;
-	const char *part;
-	const char *rev;
+	id_t smbid = -1;
+	const char *serial = NULL;
+	const char *part = NULL;
+	const char *rev = NULL;
 
 	if (nvlist_lookup_nvlist_array(mc, "dimmlist", &dimmarr, &ndimm) != 0) {
 		whinge(mod, NULL, "amd_dimm_create: dimmlist lookup failed\n");
@@ -562,10 +562,10 @@
 
 		for (nvp = nvlist_next_nvpair(dimmarr[i], NULL); nvp != NULL;
 		    nvp = nvlist_next_nvpair(dimmarr[i], nvp)) {
-			if (nvpair_type(nvp) == DATA_TYPE_UINT64_ARRAY &&
-			    strcmp(nvpair_name(nvp), "csnums") == 0 ||
-			    nvpair_type(nvp) == DATA_TYPE_STRING_ARRAY &&
-			    strcmp(nvpair_name(nvp), "csnames") == 0)
+			if ((nvpair_type(nvp) == DATA_TYPE_UINT64_ARRAY &&
+			    strcmp(nvpair_name(nvp), "csnums") == 0) ||
+			    (nvpair_type(nvp) == DATA_TYPE_STRING_ARRAY &&
+			    strcmp(nvpair_name(nvp), "csnames") == 0))
 				continue;	/* used in amd_rank_create() */
 
 			nerr += nvprop_add(mod, nvp, PGNAME(DIMM), dimmnode);
--- a/usr/src/lib/fm/topo/modules/i86pc/chip/chip_intel.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/lib/fm/topo/modules/i86pc/chip/chip_intel.c	Sat Jan 02 16:02:29 2021 +0100
@@ -200,7 +200,7 @@
 	char *rev = NULL;
 	char *label = NULL;
 	char *name;
-	id_t smbid;
+	id_t smbid = -1;
 
 	if (topo_node_range_create(mod, pnode, DIMM, 0,
 	    maxdimms ? maxdimms-1 : ndimms-1) < 0) {
--- a/usr/src/lib/pylibbe/common/libbe_py.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/lib/pylibbe/common/libbe_py.c	Sat Jan 02 16:02:29 2021 +0100
@@ -22,7 +22,7 @@
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2012 OmniTI Computer Consulting, Inc.  All rights reserved.
- * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
+ * Copyright 2020 OmniOS Community Edition (OmniOSce) Association.
  */
 
 #include <Python.h>
@@ -51,7 +51,7 @@
 PyObject *beCreateSnapshot(PyObject *, PyObject *);
 PyObject *beCopy(PyObject *, PyObject *);
 PyObject *beList(PyObject *, PyObject *, PyObject *);
-PyObject *beActivate(PyObject *, PyObject *);
+PyObject *beActivate(PyObject *, PyObject *, PyObject *);
 PyObject *beDestroy(PyObject *, PyObject *);
 PyObject *beDestroySnapshot(PyObject *, PyObject *);
 PyObject *beRename(PyObject *, PyObject *);
@@ -93,7 +93,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beCreateSnapshot(PyObject *self, PyObject *args)
 {
@@ -159,7 +158,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beCopy(PyObject *self, PyObject *args)
 {
@@ -285,7 +283,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beList(PyObject *self, PyObject *args, PyObject *keywds)
 {
@@ -413,7 +410,10 @@
  *              to activate a Boot Environment
  * Parameters:
  *   args -     pointer to a python object containing:
- *     beName - The name of the BE to activate
+ *     bename    - The name of the BE to activate
+ *     temporary - If True, perform a temporary BE activation
+ *                 If False, remove a temporary BE activation
+ *                 If not present, do nothing in regard to temporary activation
  *
  * Returns a pointer to a python object:
  *      BE_SUCCESS - Success
@@ -421,28 +421,36 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
-beActivate(PyObject *self, PyObject *args)
+beActivate(PyObject *self, PyObject *args, PyObject *keywds)
 {
 	char		*beName = NULL;
 	int		ret = BE_PY_SUCCESS;
 	nvlist_t	*beAttrs = NULL;
+	int		temp = -1;
 
-	if (!PyArg_ParseTuple(args, "z", &beName)) {
-		return (Py_BuildValue("i", BE_PY_ERR_PARSETUPLE));
+	static char *kwlist[] = {"bename", "temporary", NULL};
+
+	if (!PyArg_ParseTupleAndKeywords(args, keywds, "z|i",
+	    kwlist, &beName, &temp)) {
+		ret = BE_PY_ERR_PARSETUPLE;
+		goto done;
 	}
 
-	if (!convertPyArgsToNvlist(&beAttrs, 2, BE_ATTR_ORIG_BE_NAME, beName)) {
-		nvlist_free(beAttrs);
-		return (Py_BuildValue("i", BE_PY_ERR_NVLIST));
+	if (!convertPyArgsToNvlist(&beAttrs, 2, BE_ATTR_ORIG_BE_NAME, beName) ||
+	    beAttrs == NULL) {
+		ret = BE_PY_ERR_NVLIST;
+		goto done;
 	}
 
-	if (beAttrs == NULL) {
-		return (Py_BuildValue("i", BE_PY_ERR_NVLIST));
+	if (temp != -1 && nvlist_add_boolean_value(beAttrs,
+	    BE_ATTR_ACTIVE_NEXTBOOT, temp == 0 ? B_FALSE : B_TRUE) != 0) {
+		ret = BE_PY_ERR_NVLIST;
+		goto done;
 	}
 
 	ret = be_activate(beAttrs);
+done:
 	nvlist_free(beAttrs);
 	return (Py_BuildValue("i", ret));
 }
@@ -461,7 +469,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beDestroy(PyObject *self, PyObject *args)
 {
@@ -520,7 +527,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beDestroySnapshot(PyObject *self, PyObject *args)
 {
@@ -564,7 +570,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beRename(PyObject *self, PyObject *args)
 {
@@ -609,7 +614,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beMount(PyObject *self, PyObject *args)
 {
@@ -652,7 +656,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beUnmount(PyObject *self, PyObject *args)
 {
@@ -707,7 +710,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beRollback(PyObject *self, PyObject *args)
 {
@@ -753,7 +755,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 bePrintErrors(PyObject *self, PyObject *args)
 {
@@ -778,7 +779,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beGetErrDesc(PyObject *self, PyObject *args)
 {
@@ -812,7 +812,6 @@
  * Scope:
  *      Public
  */
-/* ARGSUSED */
 PyObject *
 beVerifyBEName(PyObject *self, PyObject *args)
 {
@@ -1038,6 +1037,7 @@
 			(void) printf("nvlist_add_string failed for %s (%s).\n",
 			    pt, pt2);
 			nvlist_free(*nvList);
+			*nvList = NULL;
 			return (B_FALSE);
 		}
 	}
@@ -1097,7 +1097,8 @@
 	{"beList", (PyCFunction)(uintptr_t)beList, METH_VARARGS | METH_KEYWORDS,
 	    "List BE info."},
 	{"beRename", beRename, METH_VARARGS, "Rename a BE."},
-	{"beActivate", beActivate, METH_VARARGS, "Activate a BE."},
+	{"beActivate", (PyCFunction)(uintptr_t)beActivate,
+	    METH_VARARGS | METH_KEYWORDS, "Activate a BE."},
 	{"beRollback", beRollback, METH_VARARGS, "Rollback a BE."},
 	{"bePrintErrors", bePrintErrors, METH_VARARGS,
 	    "Enable/disable error printing."},
--- a/usr/src/man/man1/ar.1	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man1/ar.1	Sat Jan 02 16:02:29 2021 +0100
@@ -44,11 +44,10 @@
 .\" Portions Copyright (c) 1992, X/Open Company Limited  All Rights Reserved
 .\" Copyright (c) 2009, Sun Microsystems, Inc.  All Rights Reserved.
 .\"
-.TH AR 1 "Sep 10, 2013"
+.TH AR 1 "December 28, 2020"
 .SH NAME
 ar \- maintain portable archive or library
 .SH SYNOPSIS
-.LP
 .nf
 \fB/usr/bin/ar\fR \fB-d\fR [\fB-Vv\fR] \fIarchive\fR \fIfile\fR...
 .fi
@@ -119,8 +118,6 @@
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 The \fBar\fR utility maintains groups of files combined into a single archive
 file. Its main use is to create and update library files. However, it can be
 used for any similar purpose. The magic string and the file headers used by
@@ -140,8 +137,6 @@
 update the contents of such an archive, the symbol table is rebuilt. The
 \fB-s\fR option described below forces the symbol table to be rebuilt.
 .SH OPTIONS
-.sp
-.LP
 The following options are supported:
 .sp
 .ne 2
@@ -200,7 +195,7 @@
 .ad
 .RS 6n
 Positions new \fIfile\fRs in \fIarchive\fR before the file named by the
-\fIposname\fR operand. This option is quivalent to \fB-b\fR.
+\fIposname\fR operand. This option is equivalent to \fB-b\fR.
 .RE
 
 .sp
@@ -331,8 +326,6 @@
 .RE
 
 .SS "\fB/usr/xpg4/bin/ar\fR"
-.sp
-.LP
 The following options are supported for \fB/usr/xpg4/bin/ar\fR:
 .sp
 .ne 2
@@ -360,8 +353,6 @@
 .RE
 
 .SH OPERANDS
-.sp
-.LP
 The following operands are supported:
 .sp
 .ne 2
@@ -396,8 +387,6 @@
 .RE
 
 .SH ENVIRONMENT VARIABLES
-.sp
-.LP
 See \fBenviron\fR(5) for descriptions of the following environment variables
 that affect the execution of \fBar\fR: \fBLANG\fR, \fBLC_ALL\fR,
 \fBLC_CTYPE\fR, \fBLC_MESSAGES\fR, \fBLC_TIME\fR, and \fBNLSPATH\fR.
@@ -423,8 +412,6 @@
 .RE
 
 .SH EXIT STATUS
-.sp
-.LP
 The following exit values are returned:
 .sp
 .ne 2
@@ -445,13 +432,8 @@
 .RE
 
 .SH ATTRIBUTES
-.sp
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .SS "\fB/usr/bin/ar\fR"
-.sp
-
-.sp
 .TS
 box;
 c | c
@@ -462,9 +444,6 @@
 .TE
 
 .SS "\fB/usr/xpg4/bin/ar\fR"
-.sp
-
-.sp
 .TS
 box;
 c | c
@@ -477,14 +456,10 @@
 .TE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBbasename\fR(1), \fBcpio\fR(1), \fBld\fR(1), \fBlorder\fR(1), \fBstrip\fR(1),
 \fBtar\fR(1), \fBar.h\fR(3HEAD), \fBa.out\fR(4), \fBattributes\fR(5),
 \fBenviron\fR(5), \fBstandards\fR(5)
 .SH NOTES
-.sp
-.LP
 If the same file is mentioned twice in an argument list, it may be put in the
 archive twice.
 .sp
--- a/usr/src/man/man1/ctfdump.1	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man1/ctfdump.1	Sat Jan 02 16:02:29 2021 +0100
@@ -11,7 +11,7 @@
 .\"
 .\" Copyright 2018, Joyent, Inc.
 .\"
-.Dd Oct 2, 2018
+.Dd December 28, 2020
 .Dt CTFDUMP 1
 .Os
 .Sh NAME
@@ -141,7 +141,7 @@
 .Bd -filled -compact
 Dump the type information contained in the
 .Sy CTF
-conatiner.
+container.
 .Ed
 .It Fl u Ar outfile
 .Bd -filled -compact
--- a/usr/src/man/man1/demangle.1	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man1/demangle.1	Sat Jan 02 16:02:29 2021 +0100
@@ -15,7 +15,7 @@
 .\"
 .\" Copyright 2020 Joyent, Inc.
 .\"
-.Dd March  3, 2020
+.Dd December 28, 2020
 .Dt DEMANGLE 1
 .Os
 .Sh NAME
@@ -63,7 +63,7 @@
 In the second method,
 .Nm
 reads standard in, and whenever it encounters a potential symbol, it will
-attempt to replace the symbol in stdandard out with the demangled version.
+attempt to replace the symbol in standard out with the demangled version.
 If the symbol cannot be demangled, it is output unchanged.
 .Pp
 For either method, if an error other than attempting to demangle an non-mangled
--- a/usr/src/man/man1/lari.1	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man1/lari.1	Sat Jan 02 16:02:29 2021 +0100
@@ -3,11 +3,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH LARI 1 "Nov 28, 2007"
+.TH LARI 1 "December 28, 2020"
 .SH NAME
 lari \- link analysis of runtime interfaces
 .SH SYNOPSIS
-.LP
 .nf
 \fBlari\fR [\fB-bCDsVv\fR] [\fB-a\fR | \fB-i\fR | \fB-o\fR] \fIfile\fR | \fIdirectory\fR...
 .fi
@@ -18,8 +17,6 @@
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 The \fBlari\fR utility analyzes the interface requirements of dynamic \fBELF\fR
 objects. Two basic modes of operation are available. The first mode displays
 runtime interface information. The second mode generates interface definitions.
@@ -99,8 +96,6 @@
 for more details on using \fImapfiles\fR to version objects. An initial version
 of these \fImapfiles\fR can be created by \fBlari\fR.
 .SH OPTIONS
-.sp
-.LP
 The following options are supported.
 .sp
 .ne 2
@@ -295,7 +290,7 @@
 .ad
 .RS 11n
 This symbol definition provides for an interposer.  An object that explicitly
-identifies itself as an interposor defines all global symbols as interposers.
+identifies itself as an interposer defines all global symbols as interposers.
 See the \fB-z\fR \fBinterpose\fR option of \fBld\fR(1), and the
 \fBLD_PRELOAD\fR variable of \fBld.so.1\fR(1). Individual symbols within a
 dynamic executable can be defined as interposers by using the \fBINTERPOSE\fR
@@ -391,8 +386,6 @@
 classifications.
 .SH EXTENDED DESCRIPTION
 .SS "Interesting Information"
-.sp
-.LP
 By default, or specifically using the \fB-i\fR option, \fBlari\fR filters any
 runtime interface information to present interesting events. This filtering is
 carried out mainly to reduce the amount of information that can be generated
@@ -473,8 +466,6 @@
 Directly bound symbols, and symbols with protected visibility, are output as
 interesting information.
 .SS "Overhead Information"
-.sp
-.LP
 When using the \fB-o\fR option, \fBlari\fR displays symbol definitions that
 might be considered overhead.
 .sp
@@ -555,7 +546,6 @@
 rather than the deferred relocation processing used when calling functions
 directly. Use of this address also requires an indirection at runtime.
 .SH EXAMPLES
-.LP
 \fBExample 1 \fRAnalyzing a case of multiple bindings
 .sp
 .LP
@@ -649,7 +639,6 @@
 .sp
 
 .SH FILES
-.sp
 .ne 2
 .na
 \fB\fB$TMPDIR/lari.dbg.\fIfile\fR\fR\fR
@@ -659,8 +648,6 @@
 .RE
 
 .SH ATTRIBUTES
-.sp
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -678,8 +665,6 @@
 .LP
 The human readable output is Uncommitted. The options are Committed.
 .SH SEE ALSO
-.sp
-.LP
 \fBld\fR(1), \fBldd\fR(1), \fBld.so.1\fR(1), \fBdlopen\fR(3C), \fBdlsym\fR(3C),
 \fBattributes\fR(5)
 .sp
--- a/usr/src/man/man1/ld.so.1.1	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man1/ld.so.1.1	Sat Jan 02 16:02:29 2021 +0100
@@ -3,11 +3,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
 .\"  See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with
 .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH LD.SO.1 1 "Oct 5, 2012"
+.TH LD.SO.1 1 "December 28, 2020"
 .SH NAME
 ld.so.1 \- runtime linker for dynamic objects
 .SH SYNOPSIS
-.LP
 .nf
 \fB/lib/ld.so.1\fR
 .fi
@@ -18,8 +17,6 @@
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 Dynamic applications consist of one or more dynamic objects. A dynamic
 application is typically a dynamic executable and one or more shared object
 dependencies. As part of the initialization and execution of a dynamic
@@ -39,7 +36,7 @@
 During the process of executing a dynamic executable, the kernel maps the file,
 and locates the required interpreter. See \fBexec\fR(2) and \fBmmapobj\fR(2).
 The kernel maps in, and transfers control to, this interpreter. Sufficient
-information is passed to the interpretor to allow the interpreter to continue
+information is passed to the interpreter to allow the interpreter to continue
 to bind, and then execute the application.
 .sp
 .LP
@@ -142,8 +139,6 @@
 option to \fBld\fR(1). The environment variable \fBLD_LIBRARY_PATH\fR can be
 used to indicate directories to be searched before the default directories.
 .SS "Command Line Usage"
-.sp
-.LP
 Typically, the runtime linker is invoked indirectly through executing a dynamic
 executable that declares the runtime linker as its interpreter. The runtime
 linker can also be executed directly from the command line. This mechanism is
@@ -167,8 +162,6 @@
 .RE
 
 .SH ENVIRONMENT VARIABLES
-.sp
-.LP
 Each environment variable can be specified with a \fB_32\fR or \fB_64\fR
 suffix. This makes the environment variable specific, respectively, to 32-bit
 or 64-bit processes. This environment variable overrides any non-suffixed
@@ -579,8 +572,6 @@
 characters '\fBLD_\fR' are reserved for possible future enhancements to \fBld\fR(1) and
 \fBld.so.1\fR.
 .SH SECURITY
-.sp
-.LP
 Secure processes have some restrictions applied to the evaluation of their
 dependencies and runpaths to prevent malicious dependency substitution or
 symbol interposition.
@@ -652,7 +643,6 @@
 express dependencies, or to construct \fBdlopen\fR(3C) path names. This
 restriction should be applied to the application and to \fBall\fR dependencies.
 .SH EXAMPLES
-.LP
 \fBExample 1 \fRUsing LD_FLAGS to group environment variable information
 .sp
 .LP
@@ -683,7 +673,6 @@
 .sp
 
 .SH FILES
-.sp
 .ne 2
 .na
 \fB\fB/lib/ld.so.1\fR\fR
@@ -784,8 +773,6 @@
 .RE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBcrle\fR(1), \fBgprof\fR(1), \fBlari\fR(1), \fBld\fR(1), \fBldd\fR(1),
 \fBexec\fR(2), \fBissetugid\fR(2), \fBmmapobj\fR(2), \fBprofil\fR(2),
 \fBdladdr\fR(3C), \fBdlclose\fR(3C), \fBdldump\fR(3C), \fBdlerror\fR(3C),
@@ -795,8 +782,6 @@
 .LP
 \fILinker and Libraries Guide\fR
 .SH NOTES
-.sp
-.LP
 Care should be exercised when using \fBLD_PROFILE\fR in combination with other
 process monitoring techniques, such as users of \fBproc\fR(4). Multiple process
 monitoring techniques can result in deadlock conditions that leave the profile
--- a/usr/src/man/man1/pktool.1	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man1/pktool.1	Sat Jan 02 16:02:29 2021 +0100
@@ -3,18 +3,15 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
 .\"  See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the
 .\" fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH PKTOOL 1 "Mar 23, 2009"
+.TH PKTOOL 1 "December 28, 2020"
 .SH NAME
 pktool \- manage certificates and keys
 .SH SYNOPSIS
-.LP
 .nf
 \fBpktool\fR [\fB-f\fR \fIoption_file\fR] [\fB-i\fR] \fIsubcommand\fR \fIsubcommand_options\fR ...
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 The \fBpktool\fR command allows users to manage the certificates and keys on
 multiple keystores including PKCS#11 tokens (that is, Cryptographic Framework),
 Netscape Security Services (NSS) tokens, and standard file based keystore for
@@ -26,8 +23,6 @@
 signing CRLs, or exporting CRLs. The CRL support for the PKCS#11 keystore is
 file-based.
 .SH OPTIONS
-.sp
-.LP
 The following command options are supported:
 .sp
 .ne 2
@@ -97,8 +92,6 @@
 .RE
 
 .SH SUBCOMMANDS
-.sp
-.LP
 The following subcommands are supported:
 .sp
 .ne 2
@@ -719,8 +712,6 @@
 .RE
 
 .SH USAGE
-.sp
-.LP
 The \fBpktool\fR subcommands support the following options:
 .sp
 .ne 2
@@ -887,7 +878,7 @@
 are: \fBrsa\fR, or \fBdsa\fR. The default key type is \fBrsa\fR.
 .sp
 For the \fBgenkey\fR subcommand, the valid symmetric key types are: \fBaes\fR,
-\fBarcfou\fRr, \fBdes\fR, \fB3des\fR, or \fBgeneric\fR. The default key type is
+\fBarcfour\fR, \fBdes\fR, \fB3des\fR, or \fBgeneric\fR. The default key type is
 \fBaes\fR.
 .sp
 .in +2
@@ -1249,7 +1240,6 @@
 .RE
 
 .SH EXAMPLES
-.LP
 \fBExample 1 \fRGenerating a Self-Signed Certificate
 .sp
 .LP
@@ -1301,8 +1291,6 @@
 .sp
 
 .SH EXIT STATUS
-.sp
-.LP
 The following exit values are returned:
 .sp
 .ne 2
@@ -1323,8 +1311,6 @@
 .RE
 
 .SH ATTRIBUTES
-.sp
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -1339,8 +1325,6 @@
 .TE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBattributes\fR(5), \fBpkcs11_softtoken\fR(5)
 .sp
 .LP
--- a/usr/src/man/man1/print.1	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man1/print.1	Sat Jan 02 16:02:29 2021 +0100
@@ -5,38 +5,32 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH PRINT 1 "Mar 27, 2008"
+.TH PRINT 1 "December 28, 2020"
 .SH NAME
 print \- shell built-in function to output characters to the screen or window
 .SH SYNOPSIS
 .SS "ksh"
-.LP
 .nf
 \fBprint\fR [\fB-Rnprsu\fR [\fIn\fR]] [\fIarg\fR]...
 .fi
 
 .SS "ksh93"
-.LP
 .nf
 \fBprint\fR [\fB-Renprs\fR] [\fB-f\fR \fIformat\fR] [\fB-u\fR \fIfd\fR] [\fIstring\fR...]
 .fi
 
 .SH DESCRIPTION
 .SS "ksh"
-.sp
-.LP
 The shell output mechanism. When no options are specified, or when an option
 followed by \fB\&'\fR a \fB\(mi\fR is specified, or when just \fB-\fR is
 specified, the arguments are printed on standard output as described by
 \fBecho\fR(1).
 .SS "ksh93"
-.sp
-.LP
 By default, \fBprint\fR writes each string operand to standard output and
 appends a NEWLINE character.
 .sp
 .LP
-Unless, the \fB-r\fR, \fB-R\fR, or \fB-f\fR option is speciifed, each \fB\e\fR
+Unless, the \fB-r\fR, \fB-R\fR, or \fB-f\fR option is specified, each \fB\e\fR
 character in each string operand is processed specially as follows:
 .sp
 .ne 2
@@ -132,8 +126,6 @@
 
 .SH OPTIONS
 .SS "ksh"
-.sp
-.LP
 The following options are supported by \fBksh\fR:
 .sp
 .ne 2
@@ -185,8 +177,6 @@
 .RE
 
 .SS "ksh93"
-.sp
-.LP
 The following options are supported by \fBksh93\fR:
 .sp
 .ne 2
@@ -271,8 +261,6 @@
 .RE
 
 .SH EXIT STATUS
-.sp
-.LP
 The following exit values are returned:
 .sp
 .ne 2
@@ -293,7 +281,5 @@
 .RE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBecho\fR(1), \fBksh\fR(1), \fBksh93\fR(1), \fBprintf\fR(1),
 \fBattributes\fR(5)
--- a/usr/src/man/man1/tnfdump.1	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man1/tnfdump.1	Sat Jan 02 16:02:29 2021 +0100
@@ -3,24 +3,21 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH TNFDUMP 1 "Jan 22, 2001"
+.TH TNFDUMP 1 "December 28, 2020"
 .SH NAME
 tnfdump \- convert binary TNF file to ASCII
 .SH SYNOPSIS
-.LP
 .nf
 \fBtnfdump\fR [\fB-r\fR] [\fB-x\fR] \fItnf_file\fR...
 .fi
 
 .SH DESCRIPTION
-.LP
 The \fBtnfdump\fR utility converts the specified binary \fBTNF\fR trace files
 to \fBASCII\fR. The \fBASCII\fR output can be used to  do performance analysis.
 The default mode (without the \fB-r\fR option) prints all the event records
 (that were generated by \fBTNF_PROBE\fR(3TNF)) and the event descriptor records
 only. It also orders the events by time.
 .SH OPTIONS
-.LP
 The following option is supported:
 .sp
 .ne 2
@@ -29,7 +26,7 @@
 .ad
 .RS 6n
 Does a raw conversion of \fBTNF\fR to \fBASCII\fR. The output is a literal
-transalation of the binary \fBTNF\fR file and includes all the records in the
+translation of the binary \fBTNF\fR file and includes all the records in the
 file. This output is  useful only if you have a good understanding of
 \fBTNF\fR. A sample output is listed in EXAMPLES below.
 .RE
@@ -45,10 +42,8 @@
 .RE
 
 .SH RETURN VALUES
-.LP
 \fBtnfdump\fR returns \fB0\fR on successful exit.
 .SH EXAMPLES
-.LP
 \fBExample 1 \fRConverting a file into ASCII
 .sp
 .LP
@@ -345,6 +340,5 @@
 option \fB-x\fR.
 
 .SH SEE ALSO
-.LP
 \fBprex\fR(1), \fBgethrtime\fR(3C), \fBTNF_DECLARE_RECORD\fR(3TNF),
 \fBTNF_PROBE\fR(3TNF), \fBtnf_process_disable\fR(3TNF), \fBattributes\fR(5)
--- a/usr/src/man/man1m/wificonfig.1m	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man1m/wificonfig.1m	Sat Jan 02 16:02:29 2021 +0100
@@ -3,11 +3,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH WIFICONFIG 1M "Oct 31, 2007"
+.TH WIFICONFIG 1M "December 28, 2020"
 .SH NAME
 wificonfig \- WLAN configuration
 .SH SYNOPSIS
-.LP
 .nf
 \fBwificonfig\fR [\fB-R\fR \fIroot_path\fR] [\fB-i\fR \fIinterface\fR] autoconf
      [\fIwait\fR={\fIn\fR|\fIforever\fR}]
@@ -117,8 +116,6 @@
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 \fBwificonfig\fR defines a set of subcommands and parameters to configure
 \fBWiFi\fR interfaces in the system. A driver may support all parameters or a
 subset of these parameters.
@@ -167,8 +164,6 @@
 heuristics). A few subcommands (\fBlistprefer\fR, \fBsetprefer\fR,
 \fBremoveprefer\fR) are defined to manipulate the Preference List.
 .SH OPTIONS
-.sp
-.LP
 The following options are supported:
 .sp
 .ne 2
@@ -191,8 +186,6 @@
 .RE
 
 .SS "OPERANDS"
-.sp
-.LP
 The following operand is supported:
 .sp
 .ne 2
@@ -207,8 +200,6 @@
 .RE
 
 .SS "SUBCOMMANDS"
-.sp
-.LP
 The following subcommands are supported:
 .sp
 .ne 2
@@ -265,7 +256,7 @@
 .sp
 If the \fBWLAN\fRs in the Preference list are available, the user can specify
 the number of seconds to wait before \fBconnect\fR returns using the wait
-option. By default (without the wait option), \fBconnect\fR trys for 10
+option. By default (without the wait option), \fBconnect\fR tries for 10
 seconds. If "\fIforever\fR" or -1 follows the wait option, \fBwificonfig\fR
 tries until the \fBNIC\fR is successfully connected to the profile or essid
 that was specified.
@@ -275,7 +266,7 @@
 .sp
 .in +2
 .nf
-Connecting to profile <name>	
+Connecting to profile <name>
 Connecting to essid <name>
 .fi
 .in -2
@@ -781,7 +772,6 @@
 .RE
 
 .SH EXAMPLES
-.LP
 \fBExample 1 \fRListing the Parameters Supported by a Driver
 .sp
 .LP
@@ -884,10 +874,10 @@
     WLAN history:
 
   essid	        bssid	            encryption	last seen
-  myXXX           00:0f:24:11:12:14  WEP     	Fri Sep 13 09:15:24 2004
-  my_office_ssid  00:0f:24:11:12:15  WEP     	Fri Sep 13 13:20:04 2004
-  my_neighbor1    00:0f:24:11:12:16  NONE    	Fri Sep 14 08:01:26 2004
-  my_neighbor2    00:0f:24:11:12:17  WEP      Fri Sep 18 21:33:12 2004
+  myXXX           00:0f:24:11:12:14  WEP        Fri Sep 13 09:15:24 2004
+  my_office_ssid  00:0f:24:11:12:15  WEP        Fri Sep 13 13:20:04 2004
+  my_neighbor1    00:0f:24:11:12:16  NONE       Fri Sep 14 08:01:26 2004
+  my_neighbor2    00:0f:24:11:12:17  WEP        Fri Sep 18 21:33:12 2004
 .fi
 .in -2
 .sp
@@ -910,7 +900,7 @@
 .sp
 .LP
 If the Preference List is empty, or none of the \fBWLAN\fRs listed by the
-Proference List can be found, \fBwificonfig\fR uses the default configuration,
+Preference List can be found, \fBwificonfig\fR uses the default configuration,
 directs the interface to scan and join the \fBWLAN\fR using the built-in
 heuristics specified above.
 
@@ -1011,7 +1001,6 @@
 .sp
 
 .SH EXIT STATUS
-.sp
 .ne 2
 .na
 \fB\fB0\fR\fR
@@ -1049,8 +1038,6 @@
 .RE
 
 .SH ATTRIBUTES
-.sp
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -1065,6 +1052,4 @@
 .TE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBps\fR(1), \fBifconfig\fR(1M), \fBattributes\fR(5), \fBath\fR(7D)
--- a/usr/src/man/man3c/cond_init.3c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man3c/cond_init.3c	Sat Jan 02 16:02:29 2021 +0100
@@ -44,7 +44,7 @@
 .\" Copyright (c) 2001, The IEEE and The Open Group.  All Rights Reserved.
 .\" Copyright (c) 2007, Sun Microsystems, Inc.  All Rights Reserved.
 .\"
-.TH COND_INIT 3C "February 15, 2020"
+.TH COND_INIT 3C "December 28, 2020"
 .SH NAME
 cond_init, cond_wait, cond_timedwait, cond_reltimedwait, cond_signal,
 cond_broadcast, cond_destroy \- condition variables
@@ -435,7 +435,7 @@
 to \fBcond_wait()\fR, except that the calling thread will not wait for the
 condition to become true past the absolute time specified by \fIabstime\fR or
 the relative time specified by \fIreltime\fR. Note that \fBcond_timedwait()\fR
-or \fBcond_reltimedwait()\fR might continue to block as it trys to reacquire
+or \fBcond_reltimedwait()\fR might continue to block as it tries to reacquire
 the mutex pointed to by \fImp\fR, which may be locked by another thread. If
 either \fBcond_timedwait()\fR or \fBcond_reltimedwait()\fR returns because of a
 timeout, it returns the error value \fBETIME\fR.
--- a/usr/src/man/man3c/mbsrtowcs.3c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man3c/mbsrtowcs.3c	Sat Jan 02 16:02:29 2021 +0100
@@ -44,12 +44,11 @@
 .\" Portions Copyright (c) 2003, Sun Microsystems, Inc.  All Rights Reserved.
 .\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
 .\"
-.TH MBSRTOWCS 3C "Jun 28, 2014"
+.TH MBSRTOWCS 3C "December 28, 2020"
 .SH NAME
 mbsnrtowcs, mbsnrtowcs_l, mbsrtowcs, mbsrtowcs_l \- convert a character string
 to a wide-character string (restartable)
 .SH SYNOPSIS
-.LP
 .nf
 #include <wchar.h>
 
@@ -75,7 +74,6 @@
      \fBsize_t\fR \fIlen\fR, \fBmbstate_t *restrict\fR \fIps\fR, \fBlocale_t\fR \fIloc\fR);
 .fi
 .SH DESCRIPTION
-.LP
 These function converts a sequence of characters, beginning in
 the conversion state described by the object pointed to by \fIps\fR, from the
 array indirectly pointed to by \fIsrc\fR into a sequence of corresponding
@@ -124,7 +122,6 @@
 \fBmbsnrtowcs()\fR, except that instead of using the current locale, they use
 the locale specified by \fIloc\fR.
 .SH RETURN VALUES
-.LP
 If the input conversion encounters a sequence of bytes that do not form a valid
 character, an encoding error occurs.  In this case, these
 functions store the value of the macro \fBEILSEQ\fR in \fBerrno\fR and return
@@ -132,8 +129,7 @@
 the number of characters successfully converted, not including the terminating
 null (if any).
 .SH ERRORS
-.LP
-Theses functions may fail if:
+These functions may fail if:
 .sp
 .ne 2
 .na
@@ -153,7 +149,6 @@
 Invalid character sequence is detected.
 .RE
 .SH ATTRIBUTES
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .TS
 box;
@@ -183,7 +178,6 @@
 internal \fBmbstate_t\fR object and are Unsafe in multithreaded
 applications.
 .SH SEE ALSO
-.LP
 \fBmbrtowc\fR(3C), \fBmbsinit\fR(3C), \fBnewlocale\fR(3C),
 \fBsetlocale\fR(3C), \fBuselocale()\fR, \fBattributes\fR(5),
 \fBenviron\fR(5), \fBstandards\fR(5)
--- a/usr/src/man/man3curses/curs_kernel.3curses	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man3curses/curs_kernel.3curses	Sat Jan 02 16:02:29 2021 +0100
@@ -4,13 +4,12 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH CURS_KERNEL 3CURSES "Dec 31, 1996"
+.TH CURS_KERNEL 3CURSES "December 28, 2020"
 .SH NAME
 curs_kernel, def_prog_mode, def_shell_mode, reset_prog_mode, reset_shell_mode,
 resetty, savetty, getsyx, setsyx, ripoffline, curs_set, napms \- low-level
 curses routines
 .SH SYNOPSIS
-.LP
 .nf
 \fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-lcurses\fR [ \fIlibrary\fR ... ]
 #include <curses.h>
@@ -69,10 +68,8 @@
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 The following routines give low-level access to various \fBcurses\fR
-functionality. Theses routines typically are used inside library routines.
+functionality. These routines typically are used inside library routines.
 .sp
 .LP
 The \fBdef_prog_mode()\fR and \fBdef_shell_mode()\fR routines save the current
@@ -139,14 +136,10 @@
 .LP
 The \fBnapms()\fR routine is used to sleep for \fIms\fR milliseconds.
 .SH RETURN VALUES
-.sp
-.LP
 Except for \fBcurs_set()\fR, these routines always return \fBOK\fR.
 \fBcurs_set()\fR returns the previous cursor state, or \fBERR\fR if the
 requested \fIvisibility\fR is not supported.
 .SH ATTRIBUTES
-.sp
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -161,14 +154,10 @@
 .TE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBcurs_initscr\fR(3CURSES), \fBcurs_outopts\fR(3CURSES),
 \fBcurs_refresh\fR(3CURSES), \fBcurs_scr_dump\fR(3CURSES),
 \fBcurs_slk\fR(3CURSES), \fBcurses\fR(3CURSES), \fBattributes\fR(5)
 .SH NOTES
-.sp
-.LP
 The header <\fBcurses.h\fR> automatically includes the headers  <\fBstdio.h\fR>
 and <\fBunctrl.h\fR>.
 .sp
--- a/usr/src/man/man3iscsit/it_portal_create.3iscsit	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man3iscsit/it_portal_create.3iscsit	Sat Jan 02 16:02:29 2021 +0100
@@ -3,11 +3,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH IT_PORTAL_CREATE 3ISCSIT "Oct 1, 2008"
+.TH IT_PORTAL_CREATE 3ISCSIT "December 28, 2020"
 .SH NAME
 it_portal_create, it_portal_delete \- create and delete iSCSI portals
 .SH SYNOPSIS
-.LP
 .nf
 cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-liscsit\fR [ \fIlibrary\fR\&.\|.\|. ]
 #include <libiscsit.h>
@@ -23,7 +22,6 @@
 .fi
 
 .SH PARAMETERS
-.sp
 .ne 2
 .na
 \fB\fIcfg\fR\fR
@@ -56,14 +54,12 @@
 \fB\fIportal_ip_port\fR\fR
 .ad
 .RS 18n
-a string containing an appropriatedly formatted IP address:port. Both IPv4 and
+a string containing an appropriately formatted IP address:port. Both IPv4 and
 IPv6 addresses are permitted. IPv6 addresses should be enclosed in square
 brackets ('[', ']').
 .RE
 
 .SH DESCRIPTION
-.sp
-.LP
 The \fBit_portal_create()\fR function adds an \fBit_portal_t\fR structure
 representing a new portal to the specified target portal group. A portal may
 belong to one and only one target portal group.
@@ -77,13 +73,9 @@
 the modified configuration is committed by calling
 \fBit_config_commit\fR(3ISCSIT).
 .SH RETURN VALUES
-.sp
-.LP
 The \fBit_portal_create()\fR function returns 0 on success and an error value
 on failure.
 .SH ERRORS
-.sp
-.LP
 The \fBit_portal_create()\fR function will fail if:
 .sp
 .ne 2
@@ -113,8 +105,6 @@
 .RE
 
 .SH ATTRIBUTES
-.sp
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -131,8 +121,6 @@
 .TE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBit_ini_create\fR(3ISCSIT), \fBit_tgt_create\fR(3ISCSIT),
 \fBit_tpg_create\fR(3ISCSIT), \fBlibiscsit\fR(3LIB),
 \fBit_config_commit\fR(3ISCSIT), \fBlibiscsit\fR(3LIB), \fBlibnvpair\fR(3LIB),
--- a/usr/src/man/man3lgrp/lgrp_affinity_get.3lgrp	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man3lgrp/lgrp_affinity_get.3lgrp	Sat Jan 02 16:02:29 2021 +0100
@@ -3,11 +3,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH LGRP_AFFINITY_GET 3LGRP "Apr 16, 2003"
+.TH LGRP_AFFINITY_GET 3LGRP "December 28, 2020"
 .SH NAME
-lgrp_affinity_get, lgrp_affinity_set \- get of set lgroup affinity
+lgrp_affinity_get, lgrp_affinity_set \- get or set lgroup affinity
 .SH SYNOPSIS
-.LP
 .nf
 cc [ \fIflag \&.\|.\|.\fR ] \fIfile\fR\&.\|.\|. \fB-llgrp\fR [ \fIlibrary \&.\|.\|.\fR ]
 #include <sys/lgrp_user.h>
@@ -23,7 +22,6 @@
 .fi
 
 .SH DESCRIPTION
-.LP
 The \fBlgrp_affinity_get()\fR function returns the affinity that the LWP or set
 of LWPs specified by the \fIidtype\fR and \fIid\fR arguments have for the given
 lgroup.
@@ -86,7 +84,7 @@
 .LP
 The \fBLGRP_AFF_WEAK\fR affinity is a hint to the operating system that the
 calling thread has a weak affinity for the given lgroup.  If a thread has a
-weak affinity for its home lgroup, the operating system interpets this to mean
+weak affinity for its home lgroup, the operating system interprets this to mean
 that thread does not mind whether it is rehomed, unlike \fBLGRP_AFF_STRONG\fR.
 Load balancing, dynamic reconfiguration, processor binding, or processor set
 binding and manipulation are examples of events that can cause the operating
@@ -98,7 +96,6 @@
 has no affinity to any lgroup.  If a thread has no lgroup affinities set, the
 operating system chooses a home lgroup for the thread with no affinity set.
 .SH RETURN VALUES
-.LP
 Upon successful completion, \fBlgrp_affinity_get()\fR returns the affinity for
 the given lgroup.
 .sp
@@ -109,7 +106,6 @@
 Otherwise, both functions return \(mi1 and set \fBerrno\fR to indicate the
 error.
 .SH ERRORS
-.LP
 The \fBlgrp_affinity_get()\fR and \fBlgrp_affinity_set()\fR functions will fail
 if:
 .sp
@@ -142,7 +138,6 @@
 .RE
 
 .SH ATTRIBUTES
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -159,5 +154,4 @@
 .TE
 
 .SH SEE ALSO
-.LP
 \fBlgrp_home\fR(3LGRP), \fBliblgrp\fR(3LIB), \fBattributes\fR(5)
--- a/usr/src/man/man3m/fex_set_handling.3m	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man3m/fex_set_handling.3m	Sat Jan 02 16:02:29 2021 +0100
@@ -3,12 +3,11 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH FEX_SET_HANDLING 3M "Jul 12, 2006" "SunOS 5.11" "Mathematical Library Functions"
+.TH FEX_SET_HANDLING 3M "December 28, 2020" "SunOS 5.11" "Mathematical Library Functions"
 .SH NAME
 fex_set_handling, fex_get_handling, fex_getexcepthandler, fex_setexcepthandler
 \- control floating point exception handling modes
 .SH SYNOPSIS
-.LP
 .nf
 c99 [ \fIflag\fR... ] \fIfile\fR... -lm [ \fIlibrary\fR... ]
 #include <fenv.h>
@@ -32,8 +31,6 @@
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 These functions provide control of floating point exception handling modes. For
 each function, the \fIex\fR argument specifies one or more exceptions indicated
 by a bitwise-OR of any of the following values defined in <\fBfenv.h\fR>:
@@ -307,7 +304,7 @@
 the operation, the flags indicated by \fBinfo->flags\fR are set, and execution
 resumes at the point where the exception occurred.  The handler might modify
 \fBinfo->res\fR and \fBinfo->flags\fR to supply any desired result value and
-flags.  Alternatively, if the exception is underflow or overflow, the hander
+flags.  Alternatively, if the exception is underflow or overflow, the handler
 might set
 .sp
 .LP
@@ -348,13 +345,9 @@
 previous call to \fBfex_getexcepthandler()\fR. Otherwise the effect on the
 indicated modes is undefined.
 .SH RETURN VALUES
-.sp
-.LP
 The \fBfex_set_handling()\fR function returns a non-zero value if the requested
 exception handling mode is established. Otherwise, it returns 0.
 .SH EXAMPLES
-.sp
-.LP
 The following example demonstrates how to substitute a predetermined value for
 the result of a 0/0 invalid operation.
 .sp
@@ -424,8 +417,6 @@
 exception occurs.  In this example, the value 2.0 is substituted for the
 result.
 .SH ATTRIBUTES
-.sp
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -442,16 +433,12 @@
 .TE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBsigfpe\fR(3C), \fBfeclearexcept\fR(3M), \fBfegetenv\fR(3M),
 \fBfex_set_log\fR(3M), \fBattributes\fR(5)
 .sp
 .LP
 \fINumerical Computation Guide\fR
 .SH NOTES
-.sp
-.LP
 In a multithreaded application, the preceding functions affect exception
 handling modes only for the calling thread.
 .sp
--- a/usr/src/man/man3resolv/resolver.3resolv	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man3resolv/resolver.3resolv	Sat Jan 02 16:02:29 2021 +0100
@@ -1,7 +1,7 @@
 '\" te
 .\"  Portions Copyright 1989 AT&T Portions Copyright (c) 1985, 1995 Regents of the University of California.
 .\" Copyright (C) 2006, Sun Microsystems, Inc. All Rights Reserved
-.TH RESOLVER 3RESOLV "April 9, 2016"
+.TH RESOLVER 3RESOLV "December 28, 2020"
 .SH NAME
 resolver, res_ninit, fp_resstat, res_hostalias, res_nquery, res_nsearch,
 res_nquerydomain, res_nmkquery, res_nsend, res_nclose, res_nsendsigned,
@@ -9,7 +9,6 @@
 res_send, herror, res_getservers, res_setservers, res_ndestroy \- resolver
 routines
 .SH SYNOPSIS
-.LP
 .nf
 BIND 8.2.2 Interfaces
 .fi
@@ -163,7 +162,6 @@
 .fi
 
 .SH DESCRIPTION
-.LP
 These routines are used for making, sending, and interpreting query and reply
 messages with Internet domain name servers.
 .sp
@@ -326,7 +324,6 @@
 .RE
 
 .SS "\fBres_ninit()\fR, \fBres_init()\fR"
-.LP
 The \fBres_ninit()\fR and \fBres_init()\fR routines read the configuration
 file, if any is present, to get the default domain name, search list and the
 Internet address of the local name server(s). See \fBresolv.conf\fR(4). If no
@@ -345,7 +342,6 @@
 \fBRES_OPTIONS\fR environment variable. Initialization normally occurs on the
 first call to one of the other resolver routines.
 .SS "\fBres_nquery()\fR, \fBres_query()\fR"
-.LP
 The \fBres_nquery()\fR and \fBres_query()\fR functions provide interfaces to
 the server query mechanism. They construct a query, send it to the local
 server, await a response, and make preliminary checks on the reply. The query
@@ -364,12 +360,11 @@
 \fBUDP\fR response from the server or parts of the \fIanswer\fR will be
 silently discarded. The default maximum \fBUDP\fR response size is 512 bytes.
 .SS "\fBres_nsearch()\fR, \fBres_search()\fR"
-.LP
 The \fBres_nsearch()\fR and \fBres_search()\fR routines make a query and await
 a response, just like like \fBres_nquery()\fR and \fBres_query()\fR. In
 addition, they implement the default and search rules controlled by the
 \fBRES_DEFNAMES\fR and \fBRES_DNSRCH\fR options. They return the length of the
-first successful reply which is stored in \fIanswer\fR. On error, they reurn
+first successful reply which is stored in \fIanswer\fR. On error, they return
 -1.
 .sp
 .LP
@@ -381,12 +376,10 @@
 \fBUDP\fR response from the server or parts of the \fIanswer\fR will be
 silently discarded. The default maximum \fBUDP\fR response size is 512 bytes.
 .SS "\fBres_nquerydomain()\fR"
-.LP
 The \fBres_nquerydomain()\fR function calls \fBres_query()\fR on the
 concatenation of \fIname\fR and \fIdomain\fR, removing a trailing dot from
 \fIname\fR if \fIdomain\fR is \fINULL\fR.
 .SS "\fBres_nmkquery()\fR, \fBres_mkquery()\fR"
-.LP
 These routines are used by \fBres_nquery()\fR and \fBres_query()\fR. The
 \fBres_nmkquery()\fR and \fBres_mkquery()\fR functions construct a standard
 query message and place it in \fIbuf\fR. The routine returns the \fIsize\fR of
@@ -395,7 +388,6 @@
 <\fBarpa/nameser.h\fR>. The domain name for the query is given by \fIdname\fR.
 \fInewrr\fR is currently unused but is intended for making update messages.
 .SS "\fBres_nsend()\fR, \fBres_send()\fR, \fBres_nsendsigned()\fR"
-.LP
 The \fBres_nsend()\fR, \fBres_send()\fR, and \fBres_nsendsigned()\fR routines
 send a pre-formatted query that returns an \fIanswer\fR. The routine calls
 \fBres_ninit()\fR or \fBres_init()\fR. If \fBRES_INIT\fR is not set, the
@@ -414,26 +406,21 @@
 \fBUDP\fR response from the server or parts of the \fIanswer\fR will be
 silently discarded. The default maximum \fBUDP\fR response size is 512 bytes.
 .SS "\fBfp_resstat()\fR"
-.LP
 The function \fBfp_resstat()\fR prints out the active flag bits in
 \fIstatp\fR->\fBoptions\fR preceded by the text "\fB;; res options:\fR" on
 \fIfile\fR.
 .SS "\fBres_hostalias()\fR"
-.LP
 The function \fBres_hostalias()\fR looks up \fIname\fR in the file referred to
 by the \fBHOSTALIASES\fR environment variable and returns the fully qualified
 host name. If \fIname\fR is not found or an error occurs, \fBNULL\fR is
 returned. \fBres_hostalias()\fR stores the result in \fIbuf\fR.
 .SS "\fBres_nclose()\fR"
-.LP
 The \fBres_nclose()\fR function closes any open files referenced through
 \fIstatp\fR.
 .SS "\fBres_ndestroy()\fR"
-.LP
 The \fBres_ndestroy()\fR function calls \fBres_nclose()\fR, then frees any
 memory allocated by \fBres_ninit()\fR referenced through \fIstatp\fR.
 .SS "\fBdn_comp()\fR"
-.LP
 The \fBdn_comp()\fR function compresses the domain name \fIexp_dn\fR and stores
 it in \fIcomp_dn\fR. The \fBdn_comp()\fR function returns the size of the
 compressed name, or \fB\(mi1\fR if there were errors. \fIlength\fR is the size
@@ -451,7 +438,6 @@
 If \fIdnptrs\fR is \fINULL\fR, names are not compressed. If \fIlastdnptr\fR is
 \fINULL\fR, \fBdn_comp()\fR does not update the list of labels.
 .SS "\fBdn_expand()\fR"
-.LP
 The \fBdn_expand()\fR function expands the compressed domain name \fIcomp_dn\fR
 to a full domain name. The compressed name is contained in a query or reply
 message. \fImsg\fR is a pointer to the beginning of that message. The
@@ -459,7 +445,6 @@
 of size \fIlength\fR. The \fBdn_expand()\fR function returns the size of the
 compressed name, or \fB\(mi1\fR if there was an error.
 .SS "\fBhstrerror()\fR, \fBherror()\fR"
-.LP
 The variables \fIstatp->res_h_errno\fR and \fI_res.res_h_errno\fR and external
 variable \fIh_errno\fR are set whenever an error occurs during a resolver
 operation. The following definitions are given in <\fBnetdb.h\fR>:
@@ -486,7 +471,6 @@
 The \fBhstrerror()\fR function returns a string, which is the message text that
 corresponds to the value of the \fIerr\fR parameter.
 .SS "\fBres_setservers()\fR, \fBres_getservers()\fR"
-.LP
 The functions \fBres_getservers()\fR and \fBres_setservers()\fR are used to get
 and set the list of servers to be queried.
 .SH FILES
@@ -499,7 +483,6 @@
 .RE
 
 .SH ATTRIBUTES
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -517,7 +500,6 @@
 .TE
 
 .SH SEE ALSO
-.LP
 \fBdomainname\fR(1M), \fBgethostbyname\fR(3NSL), \fBlibresolv\fR(3LIB),
 \fBresolv.conf\fR(4), \fBattributes\fR(5)
 .sp
@@ -545,7 +527,6 @@
 Vixie, Paul, Dunlap, Kevin J., Karels, Michael J. \fIName Server Operations
 Guide for BIND\fR. Internet Software Consortium, 1996.
 .SH NOTES
-.LP
 When the caller supplies a work buffer, for example the \fIanswer\fR buffer
 argument to \fBres_nsend()\fR or \fBres_send()\fR, the buffer should be aligned
 on an eight byte boundary. Otherwise, an error such as a \fBSIGBUS\fR may
--- a/usr/src/man/man4/bart_manifest.4	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man4/bart_manifest.4	Sat Jan 02 16:02:29 2021 +0100
@@ -3,12 +3,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH BART_MANIFEST 4 "Sep 9, 2003"
+.TH BART_MANIFEST 4 "December 28, 2020"
 .SH NAME
 bart_manifest \- system audit manifest file
 .SH DESCRIPTION
-.sp
-.LP
 The \fBbart\fR(1M) command generates a manifest that describes the contents of
 a managed host. A manifest consists of a header and entries. Each entry
 represents a single file. Entries are sorted in ascending order by file name.
@@ -33,8 +31,6 @@
 .LP
 To see the format of a manifest file, see \fBEXAMPLES\fR.
 .SS "Manifest File Entries"
-.sp
-.LP
 Each manifest file entry is a single line of one of the following forms,
 depending on the file type:
 .sp
@@ -243,14 +239,12 @@
 .RE
 
 .SS "Quoting Syntax"
-.sp
-.LP
 The rules file supports a quoting syntax for representing nonstandard file
 names.
 .sp
 .LP
-When generating a manifest for file names that embeded TAB, SPACE, or NEWLINE
-characters, the special characters are encoded in their octal forms.
+When generating a manifest for file names that contain embedded TAB, SPACE, or
+NEWLINE characters, the special characters are encoded in their octal forms.
 .sp
 
 .sp
@@ -274,7 +268,6 @@
 .TE
 
 .SH EXAMPLES
-.LP
 \fBExample 1 \fRSample Manifest File
 .sp
 .LP
@@ -310,6 +303,4 @@
 .in -2
 
 .SH SEE ALSO
-.sp
-.LP
 \fBdate\fR(1), \fBbart\fR(1M), \fBbart_rules\fR(4), \fBattributes\fR(5)
--- a/usr/src/man/man4/crypt.conf.4	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man4/crypt.conf.4	Sat Jan 02 16:02:29 2021 +0100
@@ -3,18 +3,15 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH CRYPT.CONF 4 "Jun 10, 2002"
+.TH CRYPT.CONF 4 "December 28, 2020"
 .SH NAME
 crypt.conf \- configuration file for pluggable crypt modules
 .SH SYNOPSIS
-.LP
 .nf
 /etc/security/crypt.conf
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 \fBcrypt.conf\fR is the configuration file for the pluggable crypt
 architecture.  Each crypt module must provide a function to generate a password
 hash, \fBcrypt_genhash_impl\fR(3C), and a function to generate the salt,
@@ -42,7 +39,6 @@
 any module-specific parameters that control the output of the hashing
 algorithm.
 .SH EXAMPLES
-.LP
 \fBExample 1 \fRProvide compatibility for md5crypt-generated passwords.
 .sp
 .LP
@@ -78,7 +74,7 @@
 md5 /usr/lib/security/$ISA/crypt_md5.so
 rot13 /usr/lib/security/$ISA/crypt_rot13.so
 
-# For *BSD/Linux compatibilty
+# For *BSD/Linux compatibility
 # 1 is md5,  2 is Blowfish
 1 /usr/lib/security/$ISA/crypt_bsdmd5.so
 2 /usr/lib/security/$ISA/crypt_bsdbf.so
@@ -86,8 +82,6 @@
 .in -2
 
 .SH ATTRIBUTES
-.sp
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -102,8 +96,6 @@
 .TE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBpasswd\fR(1), \fBcrypt\fR(3C), \fBcrypt_genhash_impl\fR(3C),
 \fBcrypt_gensalt\fR(3C), \fBcrypt_gensalt_impl\fR(3C), \fBgetpassphrase\fR(3C),
 \fBpasswd\fR(4), \fBattributes\fR(5), \fBcrypt_unix\fR(5)
--- a/usr/src/man/man4/nfs.4	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man4/nfs.4	Sat Jan 02 16:02:29 2021 +0100
@@ -20,7 +20,7 @@
 .\" Copyright 2016 Nexenta Systems, Inc.
 .\" Copyright 2020 Joyent, Inc.
 .\"
-.Dd February 4, 2020
+.Dd December 28, 2020
 .Dt NFS 4
 .Os
 .Sh NAME
@@ -134,7 +134,7 @@
 on the
 .Nm nfsd
 command line.
-Mutually exlusive of
+Mutually exclusive of
 .Sy device .
 For the UDP protocol, only version 2 and version 3 service is established.
 NFS Version 4 is not supported for the UDP protocol.
--- a/usr/src/man/man4/process.4	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man4/process.4	Sat Jan 02 16:02:29 2021 +0100
@@ -4,18 +4,15 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH PROCESS 4 "Sept 6, 2016"
+.TH PROCESS 4 "December 28, 2020"
 .SH NAME
 process \- process contract type
 .SH SYNOPSIS
-.LP
 .nf
 \fB/system/contract/process\fR
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 Process contracts allow processes to create a fault boundary around a set of
 subprocesses and observe events which occur within that boundary.
 .sp
@@ -24,8 +21,6 @@
 \fBlibcontract\fR(3LIB) library. The process contract type directory is
 \fB/system/contract/process\fR.
 .SS "CREATION"
-.sp
-.LP
 A process contract is created when an LWP that has an active process contract
 template calls \fBfork\fR(2). Initially, the child process created by
 \fBfork()\fR is the only resource managed by the contract. When an LWP that
@@ -33,8 +28,6 @@
 process created by \fBfork()\fR is added as a resource to the process contract
 of which the parent was a member.
 .SS "EVENT TYPES"
-.sp
-.LP
 The following events types are defined:
 .sp
 .ne 2
@@ -100,8 +93,6 @@
 .RE
 
 .SS "TERMS"
-.sp
-.LP
 The following common contract terms, defined in \fBcontract\fR(4), have
 process-contract specific attributes:
 .sp
@@ -302,7 +293,7 @@
 .RS 4n
 Specifies the ID of an empty process contract held by the caller whose
 inherited process contracts are to be transferred to the newly created
-contract. Use \fBct_pr_tmpl_set_transfer\fR(3CONTRACT) to set the tranfer
+contract. Use \fBct_pr_tmpl_set_transfer\fR(3CONTRACT) to set the transfer
 contract. Attempts to specify a contract not held by the calling process, or a
 contract which still has processes in it, fail.
 .sp
@@ -310,8 +301,6 @@
 .RE
 
 .SS "STATUS"
-.sp
-.LP
 In addition to the standard items, the status object read from a status file
 descriptor contains the following items to obtain this information
 respectively:
@@ -437,8 +426,6 @@
 .RE
 
 .SS "EVENTS"
-.sp
-.LP
 In addition to the standard items, an event generated by a process contract
 contains the following information:
 .sp
@@ -550,7 +537,6 @@
 .RE
 
 .SH FILES
-.sp
 .ne 2
 .na
 \fB\fB/usr/include/sys/contract/process.h\fR\fR
@@ -561,8 +547,6 @@
 .RE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBctrun\fR(1), \fBctstat\fR(1), \fBctwatch\fR(1), \fBcoreadm\fR(1M),
 \fBclose\fR(2), \fBfork\fR(2), \fBioctl\fR(2), \fBopen\fR(2), \fBpoll\fR(2),
 \fBct_pr_event_get_exitstatus\fR(3CONTRACT),
--- a/usr/src/man/man4/smb.4	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man4/smb.4	Sat Jan 02 16:02:29 2021 +0100
@@ -17,7 +17,7 @@
 .\" fields enclosed by brackets "[]" replaced with your own identifying
 .\" information: Portions Copyright [yyyy] [name of copyright owner]
 .\"
-.TH SMB 4 "May 16, 2020"
+.TH SMB 4 "December 28, 2020"
 .SH NAME
 smb \- configuration properties for Solaris CIFS server
 .SH DESCRIPTION
@@ -162,7 +162,7 @@
 .sp
 When the property is set the valid values are aes-128-ccm and aes-128-gcm.
 If aes-128-gcm is selected both CCM and GCM are allowed, but GCM is preferred.
-If aes-128-ccm is seelcted it is the only allowed cipher. If the property is not
+If aes-128-ccm is selected it is the only allowed cipher. If the property is not
 set explicitly the default value is used - aes-128-gcm.
 .sp
 The property can be set to one of these values:
--- a/usr/src/man/man4/sysbus.4	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man4/sysbus.4	Sat Jan 02 16:02:29 2021 +0100
@@ -3,16 +3,14 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH SYSBUS 4 "Nov 18, 2004"
+.TH SYSBUS 4 "December 28, 2020"
 .SH NAME
 sysbus, isa \- device tree properties for ISA bus device drivers
 .SH DESCRIPTION
-.sp
-.LP
-Solaris for x86 supports  the \fBISA\fR bus as the system bus. Drivers for
-devices on this buse use the device tree built by the booting system to
+Solaris for x86 supports the \fBISA\fR bus as the system bus. Drivers for
+devices on this bus use the device tree built by the booting system to
 retrieve the necessary system resources used by the driver. These resources
-include device I/O port addresses, any interrupt capabilities  that the device
+include device I/O port addresses, any interrupt capabilities that the device
 can have, any DMA channels it can require, and any memory-mapped addresses it
 can occupy.
 .sp
@@ -42,7 +40,7 @@
 the \fBinterrupts\fR property to specify the \fBIPL\fR value that is used by
 the system for this interrupt in this driver. This is the priority that this
 device's interrupt handler receives relative to the interrupt handlers of other
-drivers.  The priority is an integer from  \fB1\fR to \fB16\fR. Generally,
+drivers.  The priority is an integer from \fB1\fR to \fB16\fR. Generally,
 disks are assigned a priority of \fB5\fR, while mice and printers are lower,
 and serial communication devices are higher, typically \fB7\fR. \fB10\fR is
 reserved by the system and must not be used.  Priorities \fB11\fR and greater
@@ -69,14 +67,14 @@
 The first integer of the tuple specifies the memory type, \fB0\fR specifies a
 memory range and \fB1\fR specifies an I/O range. The second integer specifies
 the base address of the memory range. The third integer of each 3-tuple
-specifies  the size, in bytes, of the mappable region.
+specifies the size, in bytes, of the mappable region.
 .sp
 The driver can refer to the elements of this array by index, and construct
 kernel mappings to these addresses using \fBddi_map_regs\fR(9F). The index into
-the array is passed as the  \fIrnumber\fR argument of \fBddi_map_regs()\fR.
+the array is passed as the \fIrnumber\fR argument of \fBddi_map_regs()\fR.
 .sp
-All  \fBsysbus\fR devices have \fBreg\fR properties.  The first tuple of this
-property  is used to construct the address part of the device name under
+All \fBsysbus\fR devices have \fBreg\fR properties.  The first tuple of this
+property is used to construct the address part of the device name under
 \fB/devices\fR. In the case of \fBPlug and Play ISA\fR devices, the first tuple
 is a special tuple that does not denote a memory range, but is used by the
 system only to create the address part of the device name.  This special tuple
@@ -106,8 +104,6 @@
 .RE
 
 .SH ATTRIBUTES
-.sp
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -122,8 +118,6 @@
 .TE
 
 .SH SEE ALSO
-.sp
-.LP
 \fBprtconf\fR(1M), \fBdriver.conf\fR(4), \fBscsi\fR(4), \fBattributes\fR(5),
 \fBddi_add_intr\fR(9F), \fBddi_intr_hilevel\fR(9F), \fBddi_map_regs\fR(9F),
 \fBddi_prop_op\fR(9F)
--- a/usr/src/man/man4/terminfo.4	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man4/terminfo.4	Sat Jan 02 16:02:29 2021 +0100
@@ -4,17 +4,15 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH TERMINFO 4 "April 9, 2016"
+.TH TERMINFO 4 "December 28, 2020"
 .SH NAME
 terminfo \- terminal and printer capability database
 .SH SYNOPSIS
-.LP
 .nf
 \fB/usr/share/lib/terminfo/?/*\fR
 .fi
 
 .SH DESCRIPTION
-.LP
 The \fBterminfo\fR database describes the capabilities of devices such as
 terminals and printers. Devices are described in \fBterminfo\fR source files by
 specifying a set of capabilities, by quantifying certain aspects of the device,
@@ -109,7 +107,6 @@
 \fBPART 2: PRINTER CAPABILITIES\fR
 .RE
 .SS "PART 1: DEVICE CAPABILITIES"
-.LP
 Capabilities in \fBterminfo\fR are of three types:  Boolean capabilities (which
 show that a device has or does not have a particular feature), numeric
 capabilities (which quantify particular features of a device), and string
@@ -443,7 +440,6 @@
 .sp
 
 .SS "key_Strings"
-.LP
 The ``\fBkey_\fR'' strings are sent by specific keys. The ``\fBkey_\fR''
 descriptions include the macro, defined in \fB<curses.h>\fR, for the code
 returned by the \fBcurses\fR routine \fBgetch\fR when the key is pressed (see
@@ -905,7 +901,6 @@
 .sp
 
 .SS "Sample Entry"
-.LP
 The following entry, which describes the AT&T 610 terminal, is among the more
 complex entries in the \fBterminfo\fR file as of this writing.
 .sp
@@ -946,7 +941,6 @@
 .in -2
 
 .SS "Types of Capabilities in the Sample Entry"
-.LP
 The sample entry shows the formats for the three types of \fBterminfo\fR
 capabilities listed:  Boolean, numeric, and string. All capabilities specified
 in the \fBterminfo\fR source file must be followed by commas, including the
@@ -1008,7 +1002,6 @@
 example above. Note that capabilities are defined in a left-to-right order and,
 therefore, a prior definition will override a later definition.
 .SS "Preparing Descriptions"
-.LP
 The most effective way to prepare a device description is by imitating the
 description of a similar device in \fBterminfo\fR and building up a description
 gradually, using partial descriptions with \fBvi\fR to check that they are
@@ -1024,7 +1017,6 @@
 quickly. If the display is corrupted, more padding is usually needed. A similar
 test can be used for insert-character.
 .SS "Section 1-1: Basic Capabilities"
-.LP
 The number of columns on each line for the device is given by the \fBcols\fR
 numeric capability. If the device has a screen, then the number of lines on the
 screen is given by the \fBlines\fR capability. If the device wraps around to
@@ -1113,7 +1105,6 @@
 .sp
 
 .SS "Section 1-2: Parameterized Strings"
-.LP
 Cursor addressing and other strings requiring parameters are described by a
 parameterized string capability, with \fBprintf\fR-like escapes
 (\fB%\fR\fIx\fR) in it. For example, to address the cursor, the \fBcup\fR
@@ -1348,7 +1339,6 @@
 previous values), and outputs that value as a character. Then the same is done
 for the second parameter. More complex arithmetic is possible using the stack.
 .SS "Section 1-3: Cursor Motions"
-.LP
 If the terminal has a fast way to home the cursor (to very upper left corner of
 screen) then this can be given as \fBhome\fR; similarly a fast way of getting
 to the lower left-hand corner can be given as \fBll\fR; this may involve going
@@ -1382,7 +1372,6 @@
 sequence will not restore the screen after an \fBrmcup\fR sequence is output
 (to the state prior to outputting \fBrmcup\fR), specify \fBnrrmc\fR.
 .SS "Section 1-4: Area Clears"
-.LP
 If the terminal can clear from the current position to the end of the line,
 leaving the cursor where it is, this should be given as \fBel\fR. If the
 terminal can clear from the beginning of the line to the current position
@@ -1392,7 +1381,6 @@
 column of a line. (Thus, it can be simulated by a request to delete a large
 number of lines, if a true \fBed\fR is not available.)
 .SS "Section 1-5: Insert/Delete Line"
-.LP
 If the terminal can open a new blank line before the line where the cursor is,
 this should be given as \fBil1\fR; this is done only from the first position of
 a line. The cursor must then appear on the newly blank line. If the terminal
@@ -1438,7 +1426,6 @@
 bring non-blank lines up from below or that scrolling back with \fBri\fR may
 bring down non-blank lines.
 .SS "Section 1-6: Insert/Delete Character"
-.LP
 There are two basic kinds of intelligent terminals with respect to
 insert/delete character operations which can be described using \fBterminfo.\fR
 The most common insert/delete character operations affect only the characters
@@ -1500,7 +1487,6 @@
 A command to erase \fIn\fR characters (equivalent to outputting \fIn\fR blanks
 without moving the cursor) can be given as \fBech\fR with one parameter.
 .SS "Section 1-7: Highlighting, Underlining, and Visible Bells"
-.LP
 Your device may have one or more kinds of display attributes that allow you to
 highlight selected characters when they appear on the screen. The following
 display modes (shown with the names by which they are set) may be available: a
@@ -1582,7 +1568,7 @@
 .TS
 c c c
 c c c .
-tparm		
+tparm
 parameter	attribute	escape sequence
 _
 	none	\eE[0m
@@ -1645,7 +1631,6 @@
 .LP
 Remember that \fBsgr\fR and \fBsgr0\fR must always be specified.
 .SS "Section 1-8: Keypad"
-.LP
 If the device has a keypad that transmits sequences when the keys are pressed,
 this information can also be specified. Note that it is not possible to handle
 devices where the keypad only works in local (this applies, for example, to the
@@ -1687,7 +1672,6 @@
 after one or more \fBpln\fR sequences to make sure that the change becomes
 visible.
 .SS "Section 1-9: Tabs and Initialization"
-.LP
 If the device has hardware tabs, the command to advance to the next tab stop
 can be given as \fBht\fR (usually control I). A ``backtab'' command that moves
 leftward to the next tab stop can be given as \fBcbt\fR. By convention, if tty
@@ -1743,7 +1727,6 @@
 commands to set and clear margins, see "Margins" below under "PRINTER
 CAPABILITIES".)
 .SS "Section 1-10: Delays"
-.LP
 Certain capabilities control padding in the \fBtty\fR driver. These are
 primarily needed by hard-copy terminals, and are used by \fBtput\fR \fBinit\fR
 to set tty modes appropriately. Delays embedded in the capabilities \fBcr\fR,
@@ -1752,7 +1735,6 @@
 rate) is given, these values can be ignored at baud rates below the value of
 \fBpb\fR.
 .SS "Section 1-11: Status Lines"
-.LP
 If the terminal has an extra ``status line'' that is not normally used by
 software, this fact can be indicated. If the status line is viewed as an extra
 line below the bottom line, into which one can cursor address normally (such as
@@ -1776,7 +1758,6 @@
 entire line to be loaded) the width, in columns, can be indicated with the
 numeric parameter \fBwsl\fR.
 .SS "Section 1-12: Line Graphics"
-.LP
 If the device has a line drawing alternate character set, the mapping of glyph
 to character would be given in \fBacsc\fR. The definition of this string is
 based on the alternate character set used in the DEC VT100 terminal, extended
@@ -1847,7 +1828,6 @@
 In addition, \fBterminfo\fR allows you to define multiple character sets. See
 Section 2-5 for details.
 .SS "Section 1-13: Color Manipulation"
-.LP
 Let us define two methods of color manipulation:  the Tektronix method and the
 HP method. The Tektronix method uses a set of N predefined colors (usually 8)
 from which a user can select "current" foreground and background colors. Thus a
@@ -1938,7 +1918,6 @@
 simulate reverse video (bit number 2 and decimal value 4) and bold (bit number
 5 and decimal value 32), the resulting value for \fBncv\fR will be 36 (4 + 32).
 .SS "Section 1-14: Miscellaneous"
-.LP
 If the terminal requires other than a null (zero) character as a pad, then this
 can be given as \fBpad\fR. Only the first character of the \fBpad\fR string is
 used. If the terminal does not have a pad character, specify \fBnpc\fR.
@@ -2009,7 +1988,6 @@
 including \fBmc4\fR, is transparently passed to the printer while an \fBmc5p\fR
 is in effect.
 .SS "Section 1-15: Special Cases"
-.LP
 The working model used by \fBterminfo\fR fits most terminals reasonably well.
 However, some terminals do not completely match that model, requiring special
 support by \fBterminfo\fR. These are not meant to be construed as deficiencies
@@ -2044,7 +2022,6 @@
 control\(miC characters, should specify \fBxsb\fR, indicating that the f1 key
 is to be used for escape and the f2 key for control C.
 .SS "Section 1-16: Similar Terminals"
-.LP
 If there are two very similar terminals, one can be defined as being just like
 the other with certain exceptions. The string capability \fBuse\fR can be given
 with the name of the similar terminal. The capabilities given before \fBuse\fR
@@ -2067,20 +2044,17 @@
 different modes for a terminal, or for different user preferences. More than
 one \fBuse\fR capability may be given.
 .SS "PART 2: PRINTER CAPABILITIES"
-.LP
 The \fBterminfo\fR database allows you to define capabilities of printers as
 well as terminals. To find out what capabilities are available for printers as
 well as for terminals, see the two lists under "DEVICE CAPABILITIES" that list
 capabilities by variable and by capability name.
 .SS "Section 2-1: Rounding Values"
-.LP
 Because parameterized string capabilities work only with integer values, we
 recommend that \fBterminfo\fR designers create strings that expect numeric
 values that have been rounded. Application designers should note this and
 should always round values to the nearest integer before using them with a
 parameterized string capability.
 .SS "Section 2-2: Printer Resolution"
-.LP
 A printer's resolution is defined to be the smallest spacing of characters it
 can achieve. In general printers have independent resolution horizontally and
 vertically. Thus the vertical resolution of a printer can be determined by
@@ -2122,7 +2096,6 @@
 printers the micro mode may be concomitant with normal mode, so that all the
 capabilities work at the same time.
 .SS "Section 2-3: Specifying Printer Resolution"
-.LP
 The printing resolution of a printer is given in several ways. Each specifies
 the resolution as the number of smallest steps per distance:
 .sp
@@ -2289,7 +2262,6 @@
 cvr$ are the arguments used with \fBcpi\fR, \fBlpi\fR, \fBchr\fR, and
 \fBcvr\fR, respectively. The prime marks (\|'\|) indicate the old values.
 .SS "Section 2-4: Capabilities that Cause Movement"
-.LP
 In the following descriptions, ``movement'' refers to the motion of the
 ``current position.'' With video terminals this would be the cursor; with some
 printers this is the carriage position. Other printers have different
@@ -2453,7 +2425,6 @@
 .sp
 
 .SS "Margins"
-.LP
 \fBterminfo\fR provides two strings for setting margins on terminals:  one for
 the left and one for the right margin. Printers, however, have two additional
 margins, for the top and bottom margins of each page. Furthermore, some
@@ -2516,7 +2487,6 @@
 .LP
 All margins can be cleared with \fBmgc\fR.
 .SS "Shadows, Italics, Wide Characters"
-.LP
 Five new sets of strings describe the capabilities printers have of enhancing
 printed text.
 .sp
@@ -2594,7 +2564,6 @@
 Conversely, if \fBmsgr\fR is not set, a program should end these modes before
 attempting any motion.
 .SS "Section 2-5: Alternate Character Sets"
-.LP
 In addition to allowing you to define line graphics (described in Section
 1-12), \fBterminfo\fR lets you define alternate character sets. The following
 capabilities cover printers and terminals with multiple selectable or definable
@@ -2680,7 +2649,6 @@
 manually changed print-wheels or font cartridges, the boolean \fBdaisy\fR is
 set.
 .SS "Section 2-6: Dot-Matrix Graphics"
-.LP
 Dot-matrix printers typically have the capability of reproducing
 ``raster-graphics'' images. Three new numeric capabilities and three new string
 capabilities can help a program draw raster-graphics images independent of the
@@ -2703,7 +2671,7 @@
 
 .sp
 .LP
-The \fBsbim\fR sring is used with a single argument, \fIB\fR, the width of the
+The \fBsbim\fR string is used with a single argument, \fIB\fR, the width of the
 image in dots.
 .sp
 .LP
@@ -2769,7 +2737,6 @@
 for these printers would be \fB,,6,5,4,3,2,1;63\fR, or alternately
 \fBo,o,6,5,4,3,2,1;63\fR.
 .SS "Section 2-7: Effect of Changing Printing Resolution"
-.LP
 If the control sequences to change the character pitch or the line pitch are
 used, the pin or dot spacing may change:
 .sp
@@ -2829,7 +2796,6 @@
 respectively. Thus, the changes in the dots per inch for dot-matrix graphics
 follow the changes in steps per inch for printer resolution.
 .SS "Section 2-8: Print Quality"
-.LP
 Many dot-matrix printers can alter the dot spacing of printed text to produce
 near ``letter quality'' printing or ``draft quality'' printing. Usually it is
 important to be able to choose one or the other because the rate of printing
@@ -2853,7 +2819,6 @@
 doesn't have all three levels, one or two of the strings should be left blank
 as appropriate.
 .SS "Section 2-9: Printing Rate and Buffer Size"
-.LP
 Because there is no standard protocol that can be used to keep a program
 synchronized with a printer, and because modern printers can buffer data before
 printing it, a program generally cannot determine at any time what has been
@@ -2939,12 +2904,10 @@
 .RE
 
 .SH SEE ALSO
-.LP
 \fBls\fR(1), \fBpg\fR(1), \fBstty\fR(1), \fBtput\fR(1), \fBtty\fR(1),
 \fBvi\fR(1), \fBinfocmp\fR(1M), \fBtic\fR(1M), \fBprintf\fR(3C),
 \fBcurses\fR(3CURSES), \fBcurses\fR(3XCURSES)
 .SH NOTES
-.LP
 The most effective way to prepare a terminal description is by imitating the
 description of a similar terminal in \fBterminfo\fR and to build up a
 description gradually, using partial descriptions with a screen oriented
--- a/usr/src/man/man7d/cpqary3.7d	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man7d/cpqary3.7d	Sat Jan 02 16:02:29 2021 +0100
@@ -11,11 +11,10 @@
 .\"
 .\" Copyright (C) 2013 Hewlett-Packard Development Company, L.P.
 .\"
-.TH CPQARY3 7D Aug 26, 2013"
+.TH CPQARY3 7D "December 28, 2020"
 .SH NAME
 cpqary3 - provides disk and SCSI tape support for HP Smart Array controllers
 .SH DESCRIPTION
-.LP
 The cpqary3 module provides low-level interface routines between the common
 disk I/O subsystem and the HP SMART Array controllers. The cpqary3 driver
 provides disk and SCSI tape support for the HP Smart Array controllers.
@@ -32,7 +31,7 @@
 supports up to a maximum of 28 connected SCSI tape drives.
 With 1.90 and later versions of cpqary3 driver, HP Smart Array SAS controllers,
 having Firmware Revision 5.10 or later, will support 64 logical drives. This
-firmware also supports Dual Domian Multipath configurations.
+firmware also supports Dual Domain Multipath configurations.
 .LP
 The driver attempts to initialize itself in accordance with the information
 found in the configuration file, /kernel/drv/cpqary3.conf.
@@ -77,7 +76,6 @@
 .BR sd (7D),
 .BR st (7D)
 .SH NOTES
-.LP
 The Smart Array controllers supported by the current version of the
 cpqary3 driver do not support 'format unit' SCSI command. Hence, selecting
 \&'format' option under 'format' utility main menu is not supported. In addition,
--- a/usr/src/man/man7i/vt.7i	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man7i/vt.7i	Sat Jan 02 16:02:29 2021 +0100
@@ -14,7 +14,7 @@
 .\" If applicable, add the following below this CDDL HEADER, with the
 .\" fields enclosed by brackets "[]" replaced with your own identifying
 .\" information: Portions Copyright [yyyy] [name of copyright owner]
-.Dd October 29, 2017
+.Dd December 28, 2020
 .Dt VT 7I
 .Os
 .Sh NAME
@@ -277,7 +277,7 @@
 .Dv KD_TEXT
 or a VT of
 .Dv KD_TEXT
-mode is actived from a previous active VT of
+mode is activated from a previous active VT of
 .Dv KD_GRAPHICS
 mode, the virtual console manager initiates a
 .Dv KDSETMODE
--- a/usr/src/man/man7p/ip6.7p	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man7p/ip6.7p	Sat Jan 02 16:02:29 2021 +0100
@@ -3,11 +3,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH IP6 7P "Dec 2, 2008"
+.TH IP6 7P "December 28, 2020"
 .SH NAME
 ip6 \- Internet Protocol Version 6
 .SH SYNOPSIS
-.LP
 .nf
 #include <sys/socket.h>
 #include <netinet/in.h>
@@ -25,8 +24,6 @@
 .fi
 
 .SH DESCRIPTION
-.sp
-.LP
 The \fBIPv6\fR protocol is the next generation of the internetwork datagram
 delivery protocol of the Internet protocol family. Programs may use \fBIPv6\fR
 through higher-level protocols such as the Transmission Control Protocol
@@ -37,8 +34,6 @@
 extension headers defined in the \fBIPv6\fR specification may be set in
 outgoing datagrams.
 .SH APPLICATION PROGRAMMING INTERFACE
-.sp
-.LP
 The \fBSTREAMS\fR driver \fB/dev/rawip6\fR is the \fBTLI\fR transport provider
 that provides raw access to \fBIPv6\fR.
 .sp
@@ -82,7 +77,7 @@
 .ad
 .RS 24n
 Limit reception and transmission of packets to this interface. Takes an integer
-as an argument; the integer is the selected interace index.
+as an argument; the integer is the selected interface index.
 .RE
 
 .sp
@@ -578,8 +573,6 @@
 Errors in sending discovered at the network interface driver layer are passed
 by IPv6 back up to the user process.
 .SH SEE ALSO
-.sp
-.LP
 \fBsvcs\fR(1), \fBndd\fR(1M), \fBrouteadm\fR(1M), \fBsvcadm\fR(1M),
 \fBread\fR(2), \fBwrite\fR(2), \fBbind\fR(3SOCKET), \fBconnect\fR(3SOCKET),
 \fBgetsockopt\fR(3SOCKET), \fBrecv\fR(3SOCKET), \fBrecvmsg\fR(3SOCKET),
@@ -596,8 +589,6 @@
 Stevens, W., and Thomas, M. \fIRFC 2292, Advanced Sockets API for IPv6\fR.
 Network Working Group. February 1998.
 .SH DIAGNOSTICS
-.sp
-.LP
 A socket operation may fail with one of the following errors returned:
 .sp
 .ne 2
@@ -766,8 +757,6 @@
 .RE
 
 .SH NOTES
-.sp
-.LP
 Applications using the sockets \fBAPI\fR must use the Advanced Sockets
 \fBAPI\fR for \fBIPv6\fR (\fIRFC 2292\fR) to see elements of the inbound
 packet's \fBIPv6\fR header or extension headers.
--- a/usr/src/man/man7p/pf_key.7p	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man7p/pf_key.7p	Sat Jan 02 16:02:29 2021 +0100
@@ -4,11 +4,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH PF_KEY 7P "Jan 12, 2018"
+.TH PF_KEY 7P "December 28, 2020"
 .SH NAME
 pf_key \- Security association database interface
 .SH SYNOPSIS
-.LP
 .nf
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -20,7 +19,6 @@
 .fi
 
 .SH DESCRIPTION
-.LP
 Keying information for IPsec security services is maintained in security
 association databases (\fBSADB\fRs).  The security associations (\fBSA\fRs) are
 used to protect both inbound and outbound packets.
@@ -52,7 +50,6 @@
 the \fBGET\fR message, which  requires the base header, the \fBSA \fRextension,
 and the \fBADDRESS_DST\fR extension.
 .SS "Messages"
-.LP
 Messages include:
 .sp
 .in +2
@@ -229,7 +226,7 @@
 .fi
 .in -2
 
-.SS "Indentity Extension"
+.SS "Identity Extension"
 .in +2
 .nf
 struct sadb_ident {
@@ -411,7 +408,6 @@
 .in -2
 
 .SS "Message Use and Behavior"
-.LP
 Each message has a behavior. A behavior is defined as where the initial message
 travels, for example, user to kernel, and what subsequent actions are expected
 to take place. Contents of messages are illustrated as:
@@ -512,7 +508,6 @@
 .LP
 The following are examples of message use and behavior:
 .SS "\fBSADB_GETSPI\fR"
-.LP
 Send a \fBSADB_GETSPI\fR message from a user process to the kernel.
 .sp
 .in +2
@@ -532,7 +527,6 @@
 .in -2
 
 .SS "\fBSADB_UPDATE\fR"
-.LP
 Send a \fBSADB_UPDATE\fR message from a user process to the kernel.
 .sp
 .in +2
@@ -560,7 +554,6 @@
 association "pair" can be updated or as a single entity using the
 \fBSADB_X_UPDATEPAIR\fR or \fBSADB_X_DELPAIR\fR message types.
 .SS "\fBSADB_ADD\fR"
-.LP
 Send a \fBSADB_ADD\fR message from a user process to the kernel.
 .sp
 .in +2
@@ -582,7 +575,6 @@
 .in -2
 
 .SS "\fBSADB_X_UPDATEPAIR\fR"
-.LP
 Send a \fBSADB_X_UPDATEPAIR\fR message from a user process to  the  kernel.
 This message type is used to update the lifetime values of a security
 association and the lifetime values of the security association it is paired
@@ -595,7 +587,6 @@
 .in -2
 
 .SS "\fBSADB_DELETE | SADB_X_DELPAIR\fR"
-.LP
 Send a \fBSADB_DELETE\fR message from a user process to the  kernel. The
 \fBSADB_X_DELPAIR\fR message type will request deletion of the security
 association and the security association it is paired with.
@@ -617,7 +608,6 @@
 .in -2
 
 .SS "\fBSADB_GET\fR"
-.LP
 Send a \fBSADB_GET\fR message from a user process to the kernel.
 .sp
 .in +2
@@ -639,7 +629,6 @@
 .in -2
 
 .SS "\fBSADB_ACQUIRE\fR"
-.LP
 The kernel sends a \fBSADB_ACQUIRE\fR message to registered sockets. Note that
 any \fBGETSPI\fR, \fBADD\fR, or \fBUPDATE\fR calls in reaction to an
 \fBACQUIRE\fR must fill in the \fBsadb_msg_seq\fR of those messages with the
@@ -678,7 +667,6 @@
 .in -2
 
 .SS "\fBSADB_X_INVERSE_ACQUIRE\fR"
-.LP
 For inbound Key Management processing, a Key Management application may wish to
 consult the kernel for its policy.  The application should send to the kernel:
 .sp
@@ -700,7 +688,6 @@
 .in -2
 
 .SS "\fBSADB_REGISTER\fR"
-.LP
 Send a \fBSADB_REGISTER\fR message from a user process to the kernel.
 .sp
 .in +2
@@ -738,7 +725,6 @@
 Which returns a series of SADB_REGISTER replies (one for each security protocol
 registered) from the kernel.
 .SS "\fBSADB_EXPIRE\fR"
-.LP
 The kernel sends a \fBSADB_EXPIRE\fR message to all listeners when the soft
 limit of a security association has been expired.
 .sp
@@ -749,7 +735,6 @@
 .in -2
 
 .SS "\fBSADB_FLUSH\fR"
-.LP
 Send a \fBSADB_FLUSH\fR message from a user process to the kernel.
 .sp
 .in +2
@@ -769,7 +754,6 @@
 .in -2
 
 .SS "\fBSADB_DUMP\fR"
-.LP
 Send a \fBSADB_DUMP\fR message from a user process to the kernel.
 .sp
 .in +2
@@ -802,7 +786,6 @@
 .in -2
 
 .SS "\fBSADB_X_PROMISC\fR"
-.LP
 Send a \fBSADB_X_PROMISC\fR message from a user process to the kernel.
 .sp
 .in +2
@@ -822,7 +805,6 @@
 .in -2
 
 .SH DIAGNOSTICS
-.LP
 The message returning from the kernel will contain a diagnostic value in the
 base message header, the diagnostic value will indicate if action requested by
 the original message was a success.
@@ -939,7 +921,6 @@
 .in -2
 
 .SH ATTRIBUTES
-.LP
 See \fBattributes\fR(5)  for descriptions of the following attributes:
 .sp
 
@@ -953,7 +934,6 @@
 .TE
 
 .SH SEE ALSO
-.LP
 \fBin.iked\fR(1M), \fBipseckey\fR(1M), \fBsockaddr\fR(3SOCKET),
 \fBipsec\fR(7P), \fBipsecah\fR(7P),
 \fBipsecesp\fR(7P), \fBroute\fR(7P), \fBudp\fR(7P)
@@ -962,6 +942,5 @@
 McDonald, D.L., Metz, C.W., and Phan, B.G., \fIRFC 2367, PF_KEY Key Management
 API, Version 2\fR, The Internet Society, July 1998.
 .SH NOTES
-.LP
 Time-based lifetimes may not expire with exact precision in seconds because
 kernel load may affect the aging of \fBSA\fR's.
--- a/usr/src/man/man9f/usb_pipe_close.9f	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man9f/usb_pipe_close.9f	Sat Jan 02 16:02:29 2021 +0100
@@ -4,11 +4,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH USB_PIPE_CLOSE 9F "Sep 16, 2016"
+.TH USB_PIPE_CLOSE 9F "December 28, 2020"
 .SH NAME
 usb_pipe_close \- Close and cleanup a USB device pipe
 .SH SYNOPSIS
-.LP
 .nf
 #include <sys/usb/usba.h>
 
@@ -22,7 +21,6 @@
 .fi
 
 .SH INTERFACE LEVEL
-.LP
 Solaris DDI specific (Solaris DDI)
 .SH PARAMETERS
 .ne 2
@@ -72,7 +70,6 @@
 .RE
 
 .SH DESCRIPTION
-.LP
 The \fBusb_pipe_close()\fR function closes the pipe pointed to by
 \fIpipe_handle\fR, releases all related resources and then frees the pipe
 handle. This function stops polling if the pipe to be closed is an interrupt-IN
@@ -155,9 +152,8 @@
 .RE
 
 .SH RETURN VALUES
-.LP
 Status is returned to the caller via the callback handler's rval argument.
-Possible callback hander rval argument values are:
+Possible callback handler rval argument values are:
 .sp
 .ne 2
 .na
@@ -201,7 +197,7 @@
 .ad
 .RS 23n
 Asynchronous resources are unavailable. In this case, USB_CB_ASYNC_REQ_FAILED
-is passed in as the \fIcallback_flags\fR arg to the callback hander.
+is passed in as the \fIcallback_flags\fR arg to the callback handler.
 .RE
 
 .sp
@@ -215,7 +211,6 @@
 on error. (This provides status for calls which otherwise could provide
 status).
 .SH CONTEXT
-.LP
 May be called from user or kernel context regardless of arguments. May not be
 called from a callback executing in interrupt     context. Please see
 \fBusb_callback_flags\fR(9S) for more information on callbacks.
@@ -243,7 +238,6 @@
 .in -2
 
 .SH ATTRIBUTES
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -260,7 +254,6 @@
 .TE
 
 .SH SEE ALSO
-.LP
 \fBattributes\fR(5), \fBusb_get_status\fR(9F), \fBusb_pipe_drain_reqs\fR(9F),
 \fBusb_pipe_get_state\fR(9F), \fBusb_pipe_xopen\fR(9F),
 \fBusb_pipe_reset\fR(9F), \fBusb_callback_flags\fR(9S)
--- a/usr/src/man/man9f/usb_pipe_reset.9f	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/man/man9f/usb_pipe_reset.9f	Sat Jan 02 16:02:29 2021 +0100
@@ -3,11 +3,10 @@
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH USB_PIPE_RESET 9F "Sep 16, 2016"
+.TH USB_PIPE_RESET 9F "December 28, 2020"
 .SH NAME
 usb_pipe_reset \- Abort queued requests from a USB pipe and reset the pipe
 .SH SYNOPSIS
-.LP
 .nf
 #include <sys/usb/usba.h>
 
@@ -19,7 +18,6 @@
 .fi
 
 .SH INTERFACE LEVEL
-.LP
 Solaris DDI specific (Solaris DDI)
 .SH PARAMETERS
 .ne 2
@@ -68,7 +66,6 @@
 .RE
 
 .SH DESCRIPTION
-.LP
 Call \fBusb_pipe_reset()\fR to reset a pipe which is in an error state, or to
 abort a current request and clear the pipe. The \fBusb_pipe_reset()\fR function
 can be called on any pipe other than the default control pipe.
@@ -158,9 +155,8 @@
 .RE
 
 .SH RETURN VALUES
-.LP
 Status is returned to the caller via the callback handler's rval argument.
-Possible callback hander rval argument values are:
+Possible callback handler rval argument values are:
 .sp
 .ne 2
 .na
@@ -214,7 +210,7 @@
 .ad
 .RS 23n
 Asynchronous resources are unavailable. In this case, USB_CB_ASYNC_REQ_FAILED
-is passed in as the \fIcallback_flags\fR arg to the callback hander.
+is passed in as the \fIcallback_flags\fR arg to the callback handler.
 .RE
 
 .sp
@@ -235,7 +231,6 @@
 on error. This provides status for calls which could not otherwise provide
 status.
 .SH CONTEXT
-.LP
 May be called from user or kernel context regardless of arguments. May be
 called from any callback with the USB_FLAGS_SLEEP clear. May not be called from
 a callback executing in interrupt context if the USB_FLAGS_SLEEP flag is set.
@@ -264,7 +259,6 @@
 .in -2
 
 .SH ATTRIBUTES
-.LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
 .sp
 
@@ -281,7 +275,6 @@
 .TE
 
 .SH SEE ALSO
-.LP
 \fBattributes\fR(5), \fBusb_get_cfg\fR(9F), \fBusb_pipe_bulk_xfer\fR(9F),
 \fBusb_pipe_close\fR(9F), \fBusb_get_status\fR(9F),
 \fBusb_pipe_ctrl_xfer\fR(9F), \fBusb_pipe_drain_reqs\fR(9F),
--- a/usr/src/test/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/test/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c	Sat Jan 02 16:02:29 2021 +0100
@@ -751,7 +751,7 @@
 	(void) snprintf(clone, sizeof (clone), "%s/test-fs-clone", pool);
 	(void) snprintf(backup, sizeof (backup), "%s/backup", pool);
 
-	err = lzc_create(dataset, DMU_OST_ZFS, NULL, NULL, 0);
+	err = lzc_create(dataset, LZC_DATSET_TYPE_ZFS, NULL, NULL, 0);
 	if (err) {
 		(void) fprintf(stderr, "could not create '%s': %s\n",
 		    dataset, strerror(errno));
--- a/usr/src/uts/common/fs/zfs/dmu_objset.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/common/fs/zfs/dmu_objset.c	Sat Jan 02 16:02:29 2021 +0100
@@ -684,8 +684,9 @@
 	dsl_pool_t *dp;
 	dsl_dataset_t *ds;
 	int err;
-	ds_hold_flags_t flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : 0;
-
+	ds_hold_flags_t flags;
+
+	flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : DS_HOLD_FLAG_NONE;
 	err = dsl_pool_hold(name, tag, &dp);
 	if (err != 0)
 		return (err);
@@ -758,8 +759,9 @@
 	dsl_pool_t *dp;
 	dsl_dataset_t *ds;
 	int err;
-	ds_hold_flags_t flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : 0;
-
+	ds_hold_flags_t flags;
+
+	flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : DS_HOLD_FLAG_NONE;
 	err = dsl_pool_hold(name, FTAG, &dp);
 	if (err != 0)
 		return (err);
@@ -797,8 +799,9 @@
 {
 	dsl_dataset_t *ds;
 	int err;
-	ds_hold_flags_t flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : 0;
-
+	ds_hold_flags_t flags;
+
+	flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : DS_HOLD_FLAG_NONE;
 	err = dsl_dataset_own_obj(dp, obj, flags, tag, &ds);
 	if (err != 0)
 		return (err);
@@ -815,9 +818,10 @@
 void
 dmu_objset_rele_flags(objset_t *os, boolean_t decrypt, void *tag)
 {
-	ds_hold_flags_t flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : 0;
-
+	ds_hold_flags_t flags;
 	dsl_pool_t *dp = dmu_objset_pool(os);
+
+	flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : DS_HOLD_FLAG_NONE;
 	dsl_dataset_rele_flags(os->os_dsl_dataset, flags, tag);
 	dsl_pool_rele(dp, tag);
 }
@@ -845,7 +849,9 @@
 {
 	dsl_pool_t *dp;
 	char name[ZFS_MAX_DATASET_NAME_LEN];
-
+	ds_hold_flags_t flags;
+
+	flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : DS_HOLD_FLAG_NONE;
 	VERIFY3P(ds, !=, NULL);
 	VERIFY3P(ds->ds_owner, ==, tag);
 	VERIFY(dsl_dataset_long_held(ds));
@@ -854,21 +860,22 @@
 	dp = ds->ds_dir->dd_pool;
 	dsl_pool_config_enter(dp, FTAG);
 
-	dsl_dataset_disown(ds, decrypt, tag);
-	VERIFY0(dsl_dataset_own(dp, name,
-	    (decrypt) ? DS_HOLD_FLAG_DECRYPT : 0, tag, newds));
+	dsl_dataset_disown(ds, flags, tag);
+	VERIFY0(dsl_dataset_own(dp, name, flags, tag, newds));
 	dsl_pool_config_exit(dp, FTAG);
 }
 
 void
 dmu_objset_disown(objset_t *os, boolean_t decrypt, void *tag)
 {
+	ds_hold_flags_t flags;
+
+	flags = (decrypt) ? DS_HOLD_FLAG_DECRYPT : DS_HOLD_FLAG_NONE;
 	/*
 	 * Stop upgrading thread
 	 */
 	dmu_objset_upgrade_stop(os);
-	dsl_dataset_disown(os->os_dsl_dataset,
-	    (decrypt) ? DS_HOLD_FLAG_DECRYPT : 0, tag);
+	dsl_dataset_disown(os->os_dsl_dataset, flags, tag);
 }
 
 void
--- a/usr/src/uts/common/fs/zfs/dmu_recv.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/common/fs/zfs/dmu_recv.c	Sat Jan 02 16:02:29 2021 +0100
@@ -201,7 +201,7 @@
 	struct drr_begin *drrb = drba->drba_cookie->drc_drrb;
 	uint64_t fromguid = drrb->drr_fromguid;
 	int flags = drrb->drr_flags;
-	ds_hold_flags_t dsflags = 0;
+	ds_hold_flags_t dsflags = DS_HOLD_FLAG_NONE;
 	int error;
 	uint64_t featureflags = DMU_GET_FEATUREFLAGS(drrb->drr_versioninfo);
 	dsl_dataset_t *ds;
@@ -399,7 +399,7 @@
 	dsl_dataset_t *ds, *newds;
 	objset_t *os;
 	uint64_t dsobj;
-	ds_hold_flags_t dsflags = 0;
+	ds_hold_flags_t dsflags = DS_HOLD_FLAG_NONE;
 	int error;
 	uint64_t crflags = 0;
 	dsl_crypto_params_t dummy_dcp = { 0 };
@@ -541,7 +541,7 @@
 	dsl_pool_t *dp = dmu_tx_pool(tx);
 	struct drr_begin *drrb = drba->drba_cookie->drc_drrb;
 	int error;
-	ds_hold_flags_t dsflags = 0;
+	ds_hold_flags_t dsflags = DS_HOLD_FLAG_NONE;
 	uint64_t featureflags = DMU_GET_FEATUREFLAGS(drrb->drr_versioninfo);
 	dsl_dataset_t *ds;
 	const char *tofs = drba->drba_cookie->drc_tofs;
@@ -670,7 +670,7 @@
 	uint64_t featureflags = DMU_GET_FEATUREFLAGS(drrb->drr_versioninfo);
 	dsl_dataset_t *ds;
 	objset_t *os;
-	ds_hold_flags_t dsflags = 0;
+	ds_hold_flags_t dsflags = DS_HOLD_FLAG_NONE;
 	uint64_t dsobj;
 	/* 6 extra bytes for /%recv */
 	char recvname[ZFS_MAX_DATASET_NAME_LEN + 6];
@@ -1824,8 +1824,9 @@
 dmu_recv_cleanup_ds(dmu_recv_cookie_t *drc)
 {
 	dsl_dataset_t *ds = drc->drc_ds;
-	ds_hold_flags_t dsflags = (drc->drc_raw) ? 0 : DS_HOLD_FLAG_DECRYPT;
-
+	ds_hold_flags_t dsflags;
+
+	dsflags = (drc->drc_raw) ? DS_HOLD_FLAG_NONE : DS_HOLD_FLAG_DECRYPT;
 	/*
 	 * Wait for the txg sync before cleaning up the receive. For
 	 * resumable receives, this ensures that our resume state has
@@ -2832,11 +2833,12 @@
 	dsl_dataset_t *snapds;
 	guid_map_entry_t *gmep;
 	objset_t *os;
-	ds_hold_flags_t dsflags = (raw) ? 0 : DS_HOLD_FLAG_DECRYPT;
+	ds_hold_flags_t dsflags;
 	int err;
 
 	ASSERT(guid_map != NULL);
 
+	dsflags = (raw) ? DS_HOLD_FLAG_NONE : DS_HOLD_FLAG_DECRYPT;
 	err = dsl_pool_hold(name, FTAG, &dp);
 	if (err != 0)
 		return (err);
--- a/usr/src/uts/common/fs/zfs/dmu_send.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/common/fs/zfs/dmu_send.c	Sat Jan 02 16:02:29 2021 +0100
@@ -1222,9 +1222,10 @@
 	dsl_pool_t *dp;
 	dsl_dataset_t *ds;
 	dsl_dataset_t *fromds = NULL;
-	ds_hold_flags_t dsflags = (rawok) ? 0 : DS_HOLD_FLAG_DECRYPT;
+	ds_hold_flags_t dsflags;
 	int err;
 
+	dsflags = (rawok) ? DS_HOLD_FLAG_NONE : DS_HOLD_FLAG_DECRYPT;
 	err = dsl_pool_hold(pool, FTAG, &dp);
 	if (err != 0)
 		return (err);
@@ -1287,9 +1288,10 @@
 	dsl_pool_t *dp;
 	dsl_dataset_t *ds;
 	int err;
-	ds_hold_flags_t dsflags = (rawok) ? 0 : DS_HOLD_FLAG_DECRYPT;
+	ds_hold_flags_t dsflags;
 	boolean_t owned = B_FALSE;
 
+	dsflags = (rawok) ? DS_HOLD_FLAG_NONE : DS_HOLD_FLAG_DECRYPT;
 	if (fromsnap != NULL && strpbrk(fromsnap, "@#") == NULL)
 		return (SET_ERROR(EINVAL));
 
--- a/usr/src/uts/common/fs/zfs/sys/dsl_dataset.h	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/common/fs/zfs/sys/dsl_dataset.h	Sat Jan 02 16:02:29 2021 +0100
@@ -306,6 +306,7 @@
 
 /* flags for holding the dataset */
 typedef enum ds_hold_flags {
+	DS_HOLD_FLAG_NONE	= 0 << 0,
 	DS_HOLD_FLAG_DECRYPT    = 1 << 0 /* needs access to encrypted data */
 } ds_hold_flags_t;
 
--- a/usr/src/uts/i86pc/cpu/generic_cpu/gcpu_mca.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/i86pc/cpu/generic_cpu/gcpu_mca.c	Sat Jan 02 16:02:29 2021 +0100
@@ -1366,7 +1366,8 @@
 	 */
 	if (!gcpu_suppress_log_on_init &&
 	    ((vendor == X86_VENDOR_Intel && family >= 0xf) ||
-	    vendor == X86_VENDOR_AMD))
+	    vendor == X86_VENDOR_AMD ||
+	    vendor == X86_VENDOR_HYGON))
 		gcpu_mca_logout(hdl, NULL, -1ULL, NULL, B_FALSE,
 		    GCPU_MPT_WHAT_POKE_ERR);
 
--- a/usr/src/uts/i86pc/os/cmi_hw.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/i86pc/os/cmi_hw.c	Sat Jan 02 16:02:29 2021 +0100
@@ -1272,6 +1272,7 @@
 	switch (vendor) {
 	case X86_VENDOR_Intel:
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		if (cmi_ext_topo_check == 0) {
 			cpuid_get_ext_topo((cpu_t *)priv, &cmi_core_nbits,
 			    &cmi_strand_nbits);
--- a/usr/src/uts/i86pc/os/cpuid.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/i86pc/os/cpuid.c	Sat Jan 02 16:02:29 2021 +0100
@@ -1817,6 +1817,7 @@
 		}
 		break;
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		switch (eax) {
 
 		case 0x80000001:
@@ -2077,7 +2078,8 @@
 		}
 	}
 
-	if (cpi->cpi_vendor == X86_VENDOR_AMD &&
+	if ((cpi->cpi_vendor == X86_VENDOR_AMD ||
+	    cpi->cpi_vendor == X86_VENDOR_HYGON) &&
 	    is_x86_feature(x86_featureset, X86FSET_TOPOEXT) &&
 	    cpi->cpi_xmaxeax >= CPUID_LEAF_EXT_1e) {
 		return (cpi->cpi_extd[0x1e].cp_eax);
@@ -2742,7 +2744,8 @@
 	uint64_t val;
 	on_trap_data_t otd;
 
-	if (cpi->cpi_vendor != X86_VENDOR_AMD)
+	if (cpi->cpi_vendor != X86_VENDOR_AMD &&
+	    cpi->cpi_vendor != X86_VENDOR_HYGON)
 		return (B_FALSE);
 
 	/*
@@ -2881,7 +2884,8 @@
 	struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
 	x86_spectrev2_mitigation_t v2mit;
 
-	if (cpi->cpi_vendor == X86_VENDOR_AMD &&
+	if ((cpi->cpi_vendor == X86_VENDOR_AMD ||
+	    cpi->cpi_vendor == X86_VENDOR_HYGON) &&
 	    cpi->cpi_xmaxeax >= CPUID_LEAF_EXT_8) {
 		if (cpi->cpi_extd[8].cp_ebx & CPUID_AMD_EBX_IBPB)
 			add_x86_feature(featureset, X86FSET_IBPB);
@@ -3092,7 +3096,8 @@
 
 	cpi = cpu->cpu_m.mcpu_cpi;
 
-	if (cpi->cpi_vendor == X86_VENDOR_AMD) {
+	if (cpi->cpi_vendor == X86_VENDOR_AMD ||
+	    cpi->cpi_vendor == X86_VENDOR_HYGON) {
 		cpuid_gather_amd_topology_leaves(cpu);
 	}
 
@@ -3108,6 +3113,7 @@
 		    &cpi->cpi_ncore_per_chip);
 		break;
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		cpuid_amd_ncores(cpi, &cpi->cpi_ncpu_per_chip,
 		    &cpi->cpi_ncore_per_chip);
 		break;
@@ -3157,7 +3163,8 @@
 		cpi->cpi_clogid = 0;
 		cpi->cpi_coreid = cpu->cpu_id;
 		cpi->cpi_pkgcoreid = 0;
-		if (cpi->cpi_vendor == X86_VENDOR_AMD) {
+		if (cpi->cpi_vendor == X86_VENDOR_AMD ||
+		    cpi->cpi_vendor == X86_VENDOR_HYGON) {
 			cpi->cpi_procnodeid = BITX(cpi->cpi_apicid, 3, 0);
 		} else {
 			cpi->cpi_procnodeid = cpi->cpi_chipid;
@@ -3168,6 +3175,7 @@
 			cpuid_intel_getids(cpu, featureset);
 			break;
 		case X86_VENDOR_AMD:
+		case X86_VENDOR_HYGON:
 			cpuid_amd_getids(cpu, featureset);
 			break;
 		default:
@@ -3358,6 +3366,9 @@
 		if (CPI_FAMILY(cpi) == 0xf)
 			cpi->cpi_model += CPI_MODEL_XTD(cpi) << 4;
 		break;
+	case X86_VENDOR_HYGON:
+		cpi->cpi_model += CPI_MODEL_XTD(cpi) << 4;
+		break;
 	default:
 		if (cpi->cpi_model == 0xf)
 			cpi->cpi_model += CPI_MODEL_XTD(cpi) << 4;
@@ -3471,6 +3482,10 @@
 #endif
 
 		break;
+	case X86_VENDOR_HYGON:
+		/* Enable all for Hygon Dhyana CPU */
+		mask_ecx = 0xffffffff;
+		break;
 	case X86_VENDOR_TM:
 		/*
 		 * workaround the NT workaround in CMS 4.1
@@ -3934,6 +3949,7 @@
 		    x86_type == X86_TYPE_CYRIX_GXm)
 			xcpuid++;
 		break;
+	case X86_VENDOR_HYGON:
 	case X86_VENDOR_Centaur:
 	case X86_VENDOR_TM:
 	default:
@@ -3955,6 +3971,7 @@
 		switch (cpi->cpi_vendor) {
 		case X86_VENDOR_Intel:
 		case X86_VENDOR_AMD:
+		case X86_VENDOR_HYGON:
 			if (cpi->cpi_xmaxeax < 0x80000001)
 				break;
 			cp = &cpi->cpi_extd[1];
@@ -3998,7 +4015,8 @@
 				add_x86_feature(featureset, X86FSET_1GPG);
 			}
 
-			if ((cpi->cpi_vendor == X86_VENDOR_AMD) &&
+			if ((cpi->cpi_vendor == X86_VENDOR_AMD ||
+			    cpi->cpi_vendor == X86_VENDOR_HYGON) &&
 			    (cpi->cpi_std[1].cp_edx & CPUID_INTC_EDX_FXSR) &&
 			    (cp->cp_ecx & CPUID_AMD_ECX_SSE4A)) {
 				add_x86_feature(featureset, X86FSET_SSE4A);
@@ -4019,7 +4037,8 @@
 			 * that AMD processors don't support sysenter
 			 * in long mode at all, so don't try to program them.
 			 */
-			if (x86_vendor == X86_VENDOR_AMD) {
+			if (x86_vendor == X86_VENDOR_AMD ||
+			    x86_vendor == X86_VENDOR_HYGON) {
 				remove_x86_feature(featureset, X86FSET_SEP);
 			}
 
@@ -4073,6 +4092,7 @@
 			}
 			/*FALLTHROUGH*/
 		case X86_VENDOR_AMD:
+		case X86_VENDOR_HYGON:
 			if (cpi->cpi_xmaxeax < CPUID_LEAF_EXT_8)
 				break;
 			cp = &cpi->cpi_extd[8];
@@ -4084,7 +4104,8 @@
 			/*
 			 * AMD uses ebx for some extended functions.
 			 */
-			if (cpi->cpi_vendor == X86_VENDOR_AMD) {
+			if (cpi->cpi_vendor == X86_VENDOR_AMD ||
+			    cpi->cpi_vendor == X86_VENDOR_HYGON) {
 				/*
 				 * While we're here, check for the AMD "Error
 				 * Pointer Zero/Restore" feature. This can be
@@ -4120,6 +4141,7 @@
 		switch (cpi->cpi_vendor) {
 		case X86_VENDOR_Intel:
 		case X86_VENDOR_AMD:
+		case X86_VENDOR_HYGON:
 			if (cpi->cpi_maxeax >= 7) {
 				cp = &cpi->cpi_extd[7];
 				cp->cp_eax = 0x80000007;
@@ -4152,7 +4174,8 @@
 	cpi->cpi_socket = _cpuid_skt(cpi->cpi_vendor, cpi->cpi_family,
 	    cpi->cpi_model, cpi->cpi_step);
 
-	if (cpi->cpi_vendor == X86_VENDOR_AMD) {
+	if (cpi->cpi_vendor == X86_VENDOR_AMD ||
+	    cpi->cpi_vendor == X86_VENDOR_HYGON) {
 		if (cpi->cpi_xmaxeax >= CPUID_LEAF_EXT_8 &&
 		    cpi->cpi_extd[8].cp_ebx & CPUID_AMD_EBX_ERR_PTR_ZERO) {
 			/* Special handling for AMD FP not necessary. */
@@ -5032,7 +5055,8 @@
 	cpi->cpi_last_lvl_cacheid = cpu->cpu_id;
 
 	if ((cpi->cpi_maxeax >= 4 && cpi->cpi_vendor == X86_VENDOR_Intel) ||
-	    (cpi->cpi_vendor == X86_VENDOR_AMD &&
+	    ((cpi->cpi_vendor == X86_VENDOR_AMD ||
+	    cpi->cpi_vendor == X86_VENDOR_HYGON) &&
 	    cpi->cpi_xmaxeax >= CPUID_LEAF_EXT_1d &&
 	    is_x86_feature(x86_featureset, X86FSET_TOPOEXT))) {
 		uint32_t leaf;
@@ -5401,6 +5425,7 @@
 		/*FALLTHROUGH*/
 
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		edx = &cpi->cpi_support[AMD_EDX_FEATURES];
 		ecx = &cpi->cpi_support[AMD_ECX_FEATURES];
 
@@ -5417,6 +5442,7 @@
 			break;
 
 		case X86_VENDOR_AMD:
+		case X86_VENDOR_HYGON:
 			if (!is_x86_feature(x86_featureset, X86FSET_TSCP))
 				*edx &= ~CPUID_AMD_EDX_TSCP;
 			if (!is_x86_feature(x86_featureset, X86FSET_SSE4A))
@@ -5459,6 +5485,7 @@
 
 		switch (cpi->cpi_vendor) {
 		case X86_VENDOR_AMD:
+		case X86_VENDOR_HYGON:
 			if (*edx & CPUID_AMD_EDX_TSCP)
 				hwcap_flags |= AV_386_TSCP;
 			if (*ecx & CPUID_AMD_ECX_AHF64)
@@ -5603,7 +5630,8 @@
 	{
 		struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
 
-		if (cpi->cpi_vendor == X86_VENDOR_AMD &&
+		if ((cpi->cpi_vendor == X86_VENDOR_AMD ||
+		    cpi->cpi_vendor == X86_VENDOR_HYGON) &&
 		    cpi->cpi_xmaxeax >= 0x80000001 &&
 		    (CPI_FEATURES_XTD_EDX(cpi) & CPUID_AMD_EDX_SYSC))
 			return (1);
@@ -5821,7 +5849,9 @@
 
 	ASSERT(cpu != NULL);
 	cpi = cpu->cpu_m.mcpu_cpi;
-	if (cpi->cpi_vendor == X86_VENDOR_AMD && cpi->cpi_maxeax >= 1 &&
+	if ((cpi->cpi_vendor == X86_VENDOR_AMD ||
+	    cpi->cpi_vendor == X86_VENDOR_HYGON) &&
+	    cpi->cpi_maxeax >= 1 &&
 	    (CPI_FEATURES_XTD_ECX(cpi) & CPUID_AMD_ECX_CR8D) != 0)
 		return (1);
 	return (0);
@@ -6789,6 +6819,8 @@
 		    (cpi->cpi_family == 5 && cpi->cpi_model >= 1))
 			return (X86_VENDOR_AMD);
 		break;
+	case X86_VENDOR_HYGON:
+		return (X86_VENDOR_AMD);
 	case X86_VENDOR_TM:
 		if (cpi->cpi_family >= 5)
 			return (X86_VENDOR_AMD);
@@ -6885,6 +6917,9 @@
 	case X86_VENDOR_AMD:
 		create = cpi->cpi_family >= 0xf;
 		break;
+	case X86_VENDOR_HYGON:
+		create = 1;
+		break;
 	default:
 		create = 0;
 		break;
@@ -6901,6 +6936,9 @@
 	case X86_VENDOR_AMD:
 		create = CPI_FAMILY(cpi) == 0xf;
 		break;
+	case X86_VENDOR_HYGON:
+		create = 1;
+		break;
 	default:
 		create = 0;
 		break;
@@ -6912,6 +6950,7 @@
 	/* generation */
 	switch (cpi->cpi_vendor) {
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		/*
 		 * AMD K5 model 1 was the first part to support this
 		 */
@@ -6938,6 +6977,9 @@
 	case X86_VENDOR_AMD:
 		create = cpi->cpi_family >= 0xf;
 		break;
+	case X86_VENDOR_HYGON:
+		create = 1;
+		break;
 	default:
 		create = 0;
 		break;
@@ -6958,6 +7000,9 @@
 	case X86_VENDOR_AMD:
 		create = cpi->cpi_family >= 0xf;
 		break;
+	case X86_VENDOR_HYGON:
+		create = 1;
+		break;
 	default:
 		create = 0;
 		break;
@@ -6988,6 +7033,9 @@
 	case X86_VENDOR_AMD:
 		create = cpi->cpi_family >= 0xf;
 		break;
+	case X86_VENDOR_HYGON:
+		create = 1;
+		break;
 	default:
 		create = 0;
 		break;
@@ -7000,6 +7048,7 @@
 	switch (cpi->cpi_vendor) {
 	case X86_VENDOR_Intel:
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 	case X86_VENDOR_Cyrix:
 	case X86_VENDOR_TM:
 	case X86_VENDOR_Centaur:
@@ -7513,7 +7562,8 @@
 		cp.cp_ecx = 0;
 		(void) __cpuid_insn(&cp);
 		cpi->cpi_std[7] = cp;
-	} else if (cpi->cpi_vendor == X86_VENDOR_AMD) {
+	} else if (cpi->cpi_vendor == X86_VENDOR_AMD ||
+	    cpi->cpi_vendor == X86_VENDOR_HYGON) {
 		/* No xcpuid support */
 		if (cpi->cpi_family < 5 ||
 		    (cpi->cpi_family == 5 && cpi->cpi_model < 1))
--- a/usr/src/uts/i86pc/os/cpuid_subr.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/i86pc/os/cpuid_subr.c	Sat Jan 02 16:02:29 2021 +0100
@@ -88,12 +88,13 @@
  *		15 for family 0x17, models 30 - 3f
  *		16 for family 0x17, models 60 - 6f
  *		17 for family 0x17, models 70 - 7f
- *		18 for family 0x19, models 00 - 0f
- *		19 for family 0x19, models 20 - 2f
+ *		18 for family 0x18, models 00 - 0f
+ *		19 for family 0x19, models 00 - 0f
+ *		20 for family 0x19, models 20 - 2f
  * Second index by (model & 0x3) for family 0fh,
  * CPUID pkg bits (Fn8000_0001_EBX[31:28]) for later families.
  */
-static uint32_t amd_skts[20][8] = {
+static uint32_t amd_skts[21][8] = {
 	/*
 	 * Family 0xf revisions B through E
 	 */
@@ -365,9 +366,24 @@
 	},
 
 	/*
+	 * Family 0x18 models 00-0f	(Dhyana)
+	 */
+#define	A_SKTS_18			18
+	{
+		X86_SOCKET_UNKNOWN,	/* 0b000 */
+		X86_SOCKET_UNKNOWN,	/* 0b001 */
+		X86_SOCKET_UNKNOWN,	/* 0b010 */
+		X86_SOCKET_UNKNOWN,	/* 0b011 */
+		X86_SOCKET_SL1,		/* 0b100 */
+		X86_SOCKET_UNKNOWN,	/* 0b101 */
+		X86_SOCKET_DM1,		/* 0b110 */
+		X86_SOCKET_SL1R2	/* 0b111 */
+	},
+
+	/*
 	 * Family 0x19 models 00-0f	(Zen 3 - Milan)
 	 */
-#define	A_SKTS_18			18
+#define	A_SKTS_19			19
 	{
 		X86_SOCKET_UNKNOWN,	/* 0b000 */
 		X86_SOCKET_UNKNOWN,	/* 0b001 */
@@ -382,7 +398,7 @@
 	/*
 	 * Family 0x19 models 20-2f	(Zen 3 - Vermeer)
 	 */
-#define	A_SKTS_19			19
+#define	A_SKTS_20			20
 	{
 		X86_SOCKET_UNKNOWN,	/* 0b000 */
 		X86_SOCKET_UNKNOWN,	/* 0b001 */
@@ -399,7 +415,7 @@
 	uint32_t	skt_code;
 	char		sktstr[16];
 };
-static struct amd_sktmap_s amd_sktmap_strs[X86_NUM_SOCKETS_AMD + 1] = {
+static struct amd_sktmap_s amd_sktmap_strs[X86_NUM_SOCKETS + 1] = {
 	{ X86_SOCKET_754,	"754" },
 	{ X86_SOCKET_939,	"939" },
 	{ X86_SOCKET_940,	"940" },
@@ -434,6 +450,9 @@
 	{ X86_SOCKET_FP5,	"FP5" },
 	{ X86_SOCKET_FP6,	"FP6" },
 	{ X86_SOCKET_STRX4,	"sTRX4" },
+	{ X86_SOCKET_SL1,	"SL1" },
+	{ X86_SOCKET_SL1R2,	"SL1R2" },
+	{ X86_SOCKET_DM1,	"DM1" },
 	{ X86_SOCKET_UNKNOWN,	"Unknown" }
 };
 
@@ -459,8 +478,9 @@
 	{ 0x17, 0x30, 0x3f, A_SKTS_15 },
 	{ 0x17, 0x60, 0x6f, A_SKTS_16 },
 	{ 0x17, 0x70, 0x7f, A_SKTS_17 },
-	{ 0x19, 0x00, 0x0f, A_SKTS_18 },
-	{ 0x19, 0x20, 0x2f, A_SKTS_19 }
+	{ 0x18, 0x00, 0x0f, A_SKTS_18 },
+	{ 0x19, 0x00, 0x0f, A_SKTS_19 },
+	{ 0x19, 0x20, 0x2f, A_SKTS_20 }
 };
 
 /*
@@ -629,7 +649,13 @@
 	    A_SKTS_15 },
 
 	{ 0x17, 0x71, 0x71, 0x0, 0x0, X86_CHIPREV_AMD_17_MTS_B0, "MTS-B0",
-	    A_SKTS_17 }
+	    A_SKTS_17 },
+
+	/*
+	 * =============== HygonGenuine Family 0x18 ===============
+	 */
+	{ 0x18, 0x00, 0x00, 0x1, 0x1, X86_CHIPREV_HYGON_18_DN_A1, "DN_A1",
+	    A_SKTS_18 },
 };
 
 /*
@@ -759,6 +785,7 @@
 
 	switch (vendor) {
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		synth_amd_info(family, model, step, &skt, NULL, NULL);
 		break;
 
@@ -779,6 +806,7 @@
 
 	switch (vendor) {
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		synth_amd_info(family, model, step, &skt, NULL, NULL);
 
 		sktmapp = amd_sktmap_strs;
@@ -805,6 +833,7 @@
 
 	switch (vendor) {
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		synth_amd_info(family, model, step, NULL, &chiprev, NULL);
 		break;
 
@@ -823,6 +852,7 @@
 
 	switch (vendor) {
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		synth_amd_info(family, model, step, NULL, NULL, &revstr);
 		break;
 
@@ -851,6 +881,8 @@
 		return (X86_VENDOR_Intel);
 	else if (strcmp(vendorstr, X86_VENDORSTR_AMD) == 0)
 		return (X86_VENDOR_AMD);
+	else if (strcmp(vendorstr, X86_VENDORSTR_HYGON) == 0)
+		return (X86_VENDOR_HYGON);
 	else if (strcmp(vendorstr, X86_VENDORSTR_TM) == 0)
 		return (X86_VENDOR_TM);
 	else if (strcmp(vendorstr, CyrixInstead) == 0)
--- a/usr/src/uts/i86pc/os/cpupm/cpupm_amd.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/i86pc/os/cpupm/cpupm_amd.c	Sat Jan 02 16:02:29 2021 +0100
@@ -37,8 +37,9 @@
 	cpupm_mach_state_t *mach_state =
 	    (cpupm_mach_state_t *)(cp->cpu_m.mcpu_pm_mach_state);
 
-	/* AMD? */
-	if (x86_vendor != X86_VENDOR_AMD)
+	/* AMD or Hygon? */
+	if (x86_vendor != X86_VENDOR_AMD &&
+	    x86_vendor != X86_VENDOR_HYGON)
 		return (B_FALSE);
 
 	/*
--- a/usr/src/uts/i86pc/os/hma.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/i86pc/os/hma.c	Sat Jan 02 16:02:29 2021 +0100
@@ -101,6 +101,7 @@
 		(void) hma_vmx_init();
 		break;
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		(void) hma_svm_init();
 		break;
 	default:
@@ -121,6 +122,7 @@
 		is_ready = hma_vmx_ready;
 		break;
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 		is_ready = hma_svm_ready;
 		break;
 	default:
--- a/usr/src/uts/i86pc/os/startup.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/i86pc/os/startup.c	Sat Jan 02 16:02:29 2021 +0100
@@ -3212,6 +3212,7 @@
 	switch (x86_vendor) {
 	case X86_VENDOR_Intel:
 	case X86_VENDOR_AMD:
+	case X86_VENDOR_HYGON:
 	case X86_VENDOR_TM:
 		if (is_x86_feature(x86_featureset, X86FSET_CMOV)) {
 			/*
--- a/usr/src/uts/intel/ia32/os/cpc_subr.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/intel/ia32/os/cpc_subr.c	Sat Jan 02 16:02:29 2021 +0100
@@ -140,7 +140,8 @@
 					strands_perfmon_shared = 1;
 				}
 			}
-		} else if (cpuid_getvendor(cpu[0]) == X86_VENDOR_AMD) {
+		} else if (cpuid_getvendor(cpu[0]) == X86_VENDOR_AMD ||
+		    cpuid_getvendor(cpu[0]) == X86_VENDOR_HYGON) {
 			/*
 			 * On AMD systems with HT, all of the performance
 			 * monitors exist on a per-logical CPU basis.
--- a/usr/src/uts/intel/io/amdzen/amdzen.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/intel/io/amdzen/amdzen.c	Sat Jan 02 16:02:29 2021 +0100
@@ -624,7 +624,7 @@
 		return (DDI_WALK_CONTINUE);
 	}
 
-	if (vid != AMDZEN_PCI_VID_AMD) {
+	if (vid != AMDZEN_PCI_VID_AMD && vid != AMDZEN_PCI_VID_HYGON) {
 		return (DDI_WALK_CONTINUE);
 	}
 
@@ -737,9 +737,10 @@
 		return (DDI_FAILURE);
 	}
 
-	if (vid != AMDZEN_PCI_VID_AMD) {
-		dev_err(dip, CE_WARN, "expected AMD vendor ID (0x%x), found "
-		    "0x%x", AMDZEN_PCI_VID_AMD, vid);
+	if (vid != AMDZEN_PCI_VID_AMD && vid != AMDZEN_PCI_VID_HYGON) {
+		dev_err(dip, CE_WARN, "expected vendor ID (0x%x), found 0x%x",
+		    cpuid_getvendor(CPU) == X86_VENDOR_HYGON ?
+		    AMDZEN_PCI_VID_HYGON : AMDZEN_PCI_VID_AMD, vid);
 		return (DDI_FAILURE);
 	}
 
@@ -996,7 +997,8 @@
 {
 	int ret;
 
-	if (cpuid_getvendor(CPU) != X86_VENDOR_AMD) {
+	if (cpuid_getvendor(CPU) != X86_VENDOR_AMD &&
+	    cpuid_getvendor(CPU) != X86_VENDOR_HYGON) {
 		return (ENOTSUP);
 	}
 
--- a/usr/src/uts/intel/io/amdzen/amdzen.h	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/intel/io/amdzen/amdzen.h	Sat Jan 02 16:02:29 2021 +0100
@@ -200,6 +200,11 @@
  */
 #define	AMDZEN_PCI_VID_AMD	0x1022
 
+/*
+ * Hygon PCI ID for reference
+ */
+#define	AMDZEN_PCI_VID_HYGON	0x1d94
+
 typedef enum {
 	AMDZEN_STUB_TYPE_DF,
 	AMDZEN_STUB_TYPE_NB
--- a/usr/src/uts/intel/pcbe/opteron_pcbe.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/intel/pcbe/opteron_pcbe.c	Sat Jan 02 16:02:29 2021 +0100
@@ -547,7 +547,8 @@
 	 * loads this module based on its name in the module directory, but it
 	 * could have been renamed.
 	 */
-	if (cpuid_getvendor(CPU) != X86_VENDOR_AMD || amd_family < 0xf)
+	if ((cpuid_getvendor(CPU) != X86_VENDOR_AMD || amd_family < 0xf) &&
+	    cpuid_getvendor(CPU) != X86_VENDOR_HYGON)
 		return (-1);
 
 	if (amd_family == 0xf) {
@@ -556,7 +557,9 @@
 		    "AMD Opteron & Athlon64");
 	} else {
 		(void) snprintf(amd_pcbe_impl_name, sizeof (amd_pcbe_impl_name),
-		    "AMD Family %02xh", amd_family);
+		    "%s Family %02xh",
+		    cpuid_getvendor(CPU) == X86_VENDOR_HYGON ? "Hygon" : "AMD",
+		    amd_family);
 	}
 
 	/*
@@ -598,7 +601,8 @@
 		amd_pcbe_cpuref = amd_fam_11h_bkdg;
 		amd_events = family_11h_events;
 		amd_generic_events = opt_generic_events;
-	} else if (amd_family == 0x17 && amd_model <= 0x2f) {
+	} else if ((amd_family == 0x17 && amd_model <= 0x2f) ||
+	    amd_family == 0x18) {
 		amd_pcbe_cpuref = amd_fam_17h_zen1_reg;
 		amd_events = opteron_pcbe_f17h_zen1_events;
 		amd_generic_events = family_17h_zen1_papi_events;
--- a/usr/src/uts/intel/sys/x86_archext.h	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/intel/sys/x86_archext.h	Sat Jan 02 16:02:29 2021 +0100
@@ -804,6 +804,9 @@
 #define	X86_VENDOR_NSC		10
 #define	X86_VENDORSTR_NSC	"Geode by NSC"
 
+#define	X86_VENDOR_HYGON	11
+#define	X86_VENDORSTR_HYGON	"HygonGenuine"
+
 /*
  * Vendor string max len + \0
  */
@@ -968,6 +971,12 @@
 	_X86_CHIPREV_MKREV(X86_VENDOR_AMD, 0x17, 0x0009)
 
 /*
+ * Definitions for Hygon Family 0x18
+ */
+#define	X86_CHIPREV_HYGON_18_DN_A1 \
+	_X86_CHIPREV_MKREV(X86_VENDOR_HYGON, 0x18, 0x0001)
+
+/*
  * Various socket/package types, extended as the need to distinguish
  * a new type arises.  The top 8 byte identfies the vendor and the
  * remaining 24 bits describe 24 socket types.
@@ -1026,6 +1035,15 @@
 #define	X86_SOCKET_STRX4	_X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x23)
 #define	X86_NUM_SOCKETS_AMD	0x24
 
+/*
+ * Hygon socket types
+ */
+#define	X86_SOCKET_SL1		_X86_SOCKET_MKVAL(X86_VENDOR_HYGON, 0x01)
+#define	X86_SOCKET_SL1R2	_X86_SOCKET_MKVAL(X86_VENDOR_HYGON, 0x02)
+#define	X86_SOCKET_DM1		_X86_SOCKET_MKVAL(X86_VENDOR_HYGON, 0x03)
+#define	X86_NUM_SOCKETS_HYGON	0x04
+
+#define	X86_NUM_SOCKETS		(X86_NUM_SOCKETS_AMD + X86_NUM_SOCKETS_HYGON)
 
 /*
  * Definitions for Intel processor models. These are all for Family 6
--- a/usr/src/uts/sun4u/cpu/us3_common.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/sun4u/cpu/us3_common.c	Sat Jan 02 16:02:29 2021 +0100
@@ -3331,7 +3331,7 @@
 	case CE_ACT_DONE:
 		break;
 
-	case CE_ACT(CE_DISP_BAD):
+	case CE_DISP_BAD:
 	default:
 #ifdef DEBUG
 		cmn_err(CE_PANIC, "ce_scrub_post: Bad action '%d'", action);
--- a/usr/src/uts/sun4u/io/px/px_hlib.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/sun4u/io/px/px_hlib.c	Sat Jan 02 16:02:29 2021 +0100
@@ -161,9 +161,9 @@
 #define	MSIQ_MAPPING_SIZE	(MSI_MAPPING_ENTRIES * sizeof (uint64_t))
 
 /* OPL tuning variables for link unstable issue */
-int wait_perst = 5000000; 	/* step 9, default: 5s */
+int wait_perst = 5000000;	/* step 9, default: 5s */
 int wait_enable_port = 30000;	/* step 11, default: 30ms */
-int link_retry_count = 2; 	/* step 11, default: 2 */
+int link_retry_count = 2;	/* step 11, default: 2 */
 int link_status_check = 400000;	/* step 11, default: 400ms */
 
 static uint64_t msiq_suspend(devhandle_t dev_hdl, pxu_t *pxu_p);
@@ -2108,7 +2108,7 @@
 hvio_intr_getstate(devhandle_t dev_hdl, sysino_t sysino,
     intr_state_t *intr_state)
 {
-	intr_state_t state;
+	uint64_t state;
 
 	state = CSRA_FR((caddr_t)dev_hdl, INTERRUPT_CLEAR,
 	    SYSINO_TO_DEVINO(sysino), ENTRIES_INT_STATE);
--- a/usr/src/uts/sun4u/sunfire/io/fhc_bd.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/sun4u/sunfire/io/fhc_bd.c	Sat Jan 02 16:02:29 2021 +0100
@@ -24,8 +24,6 @@
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/types.h>
 #include <sys/conf.h>
 #include <sys/ddi.h>
@@ -768,7 +766,7 @@
 
 			type = jtag_get_board_type(jtm->jtag_cmd, sc);
 			switch (type) {
-			case -1:
+			case EMPTY_BOARD:
 				fhc_bd_sc_evt(sc, SYSC_EVT_BD_EMPTY);
 				continue;
 			case DISK_BOARD:
--- a/usr/src/uts/sun4u/sunfire/io/jtag.c	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/sun4u/sunfire/io/jtag.c	Sat Jan 02 16:02:29 2021 +0100
@@ -24,8 +24,6 @@
  * Use is subject to license terms.
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/ddi.h>
@@ -1165,7 +1163,7 @@
 /*
  * Returns (positive) board type if something detected, including
  * UNKNOWN_BOARD.
- * Returns -1 if nothing there.
+ * Returns EMPTY_BOARD if nothing there.
  */
 enum board_type
 jtag_get_board_type(volatile u_int *jreg, sysc_cfga_stat_t *sc)
@@ -1261,7 +1259,7 @@
 		break;
 
 	case RING_BROKEN:
-		result = -1;
+		result = EMPTY_BOARD;
 		break;
 
 	default:
--- a/usr/src/uts/sun4u/sunfire/sys/fhc.h	Wed Dec 30 15:47:56 2020 +0100
+++ b/usr/src/uts/sun4u/sunfire/sys/fhc.h	Sat Jan 02 16:02:29 2021 +0100
@@ -27,8 +27,6 @@
 #ifndef	_SYS_FHC_H
 #define	_SYS_FHC_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #ifdef	__cplusplus
 extern "C" {
 #endif
@@ -486,6 +484,7 @@
  * boards. It is used by both the kernel and user programs.
  */
 enum board_type {
+	EMPTY_BOARD = -1,
 	UNINIT_BOARD = 0,		/* Uninitialized board type */
 	UNKNOWN_BOARD,			/* Unknown board type */
 	CPU_BOARD,			/* System board CPU(s) */