Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 May 2014 17:39:04 +0000 (UTC)
From:      Mark Murray <markm@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r265282 - in projects/random_number_generator: . bin/dd lib/libutil release/doc/en_US.ISO8859-1/hardware release/doc/share/misc share/man/man4 sys/dev/drm2/radeon sys/fs/msdosfs sys/mod...
Message-ID:  <201405031739.s43Hd4Xe074317@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markm
Date: Sat May  3 17:39:03 2014
New Revision: 265282
URL: http://svnweb.freebsd.org/changeset/base/265282

Log:
  MFC - tracking commit.
  Merging r265260 through r265281.

Modified:
  projects/random_number_generator/Makefile.inc1
  projects/random_number_generator/bin/dd/conv.c
  projects/random_number_generator/bin/dd/dd.h
  projects/random_number_generator/lib/libutil/kinfo_getfile.3
  projects/random_number_generator/release/doc/en_US.ISO8859-1/hardware/article.xml
  projects/random_number_generator/release/doc/share/misc/dev.archlist.txt
  projects/random_number_generator/share/man/man4/mpr.4
  projects/random_number_generator/share/man/man4/rsu.4
  projects/random_number_generator/share/man/man4/urtwn.4
  projects/random_number_generator/sys/dev/drm2/radeon/radeon_drv.c
  projects/random_number_generator/sys/dev/drm2/radeon/radeon_ioc32.c
  projects/random_number_generator/sys/fs/msdosfs/msdosfs_vnops.c
  projects/random_number_generator/sys/modules/drm2/radeonkms/Makefile
  projects/random_number_generator/sys/net/route.c
  projects/random_number_generator/sys/net/route.h
  projects/random_number_generator/sys/netinet/in_rmx.c
  projects/random_number_generator/sys/netinet6/in6_ifattach.c
  projects/random_number_generator/tools/tools/nanobsd/nanobsd.sh
  projects/random_number_generator/usr.bin/ssh-copy-id/ssh-copy-id.sh
  projects/random_number_generator/usr.bin/top/machine.c
Directory Properties:
  projects/random_number_generator/   (props changed)
  projects/random_number_generator/lib/libutil/   (props changed)
  projects/random_number_generator/share/man/man4/   (props changed)
  projects/random_number_generator/sys/   (props changed)

Modified: projects/random_number_generator/Makefile.inc1
==============================================================================
--- projects/random_number_generator/Makefile.inc1	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/Makefile.inc1	Sat May  3 17:39:03 2014	(r265282)
@@ -1001,7 +1001,7 @@ buildkernel:
 	cd ${KRNLCONFDIR}; \
 		PATH=${TMPPATH} \
 		    config ${CONFIGARGS} -d ${KRNLOBJDIR}/${_kernel} \
-			-I ${KERNCONFDIR} ${KERNCONFDIR}/${_kernel}
+			-I '${KERNCONFDIR}' '${KERNCONFDIR}/${_kernel}'
 .endif
 .if !defined(NO_CLEAN) && !defined(NO_KERNELCLEAN)
 	@echo
@@ -1816,7 +1816,7 @@ DTBOUTPUTPATH= ${KRNLOBJDIR}/${KERNCONF}
 .if !defined(FDT_DTS_FILE) || empty(FDT_DTS_FILE)
 .if exists(${KERNCONFDIR}/${KERNCONF})
 FDT_DTS_FILE!= awk 'BEGIN {FS="="} /^makeoptions[[:space:]]+FDT_DTS_FILE/ {print $$2}' \
-	${KERNCONFDIR}/${KERNCONF} ; echo
+	'${KERNCONFDIR}/${KERNCONF}' ; echo
 .endif
 .endif
 

Modified: projects/random_number_generator/bin/dd/conv.c
==============================================================================
--- projects/random_number_generator/bin/dd/conv.c	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/bin/dd/conv.c	Sat May  3 17:39:03 2014	(r265282)
@@ -74,7 +74,7 @@ def(void)
 		dd_out(0);
 
 		/*
-		 * Ddout copies the leftover output to the beginning of
+		 * dd_out copies the leftover output to the beginning of
 		 * the buffer and resets the output buffer.  Reset the
 		 * input buffer to match it.
 	 	 */

Modified: projects/random_number_generator/bin/dd/dd.h
==============================================================================
--- projects/random_number_generator/bin/dd/dd.h	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/bin/dd/dd.h	Sat May  3 17:39:03 2014	(r265282)
@@ -41,7 +41,7 @@ typedef struct {
 	/* XXX ssize_t? */
 	size_t		dbcnt;		/* current buffer byte count */
 	size_t		dbrcnt;		/* last read byte count */
-	size_t		dbsz;		/* buffer size */
+	size_t		dbsz;		/* block size */
 
 #define	ISCHR		0x01		/* character device (warn on short) */
 #define	ISPIPE		0x02		/* pipe-like (see position.c) */

Modified: projects/random_number_generator/lib/libutil/kinfo_getfile.3
==============================================================================
--- projects/random_number_generator/lib/libutil/kinfo_getfile.3	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/lib/libutil/kinfo_getfile.3	Sat May  3 17:39:03 2014	(r265282)
@@ -48,7 +48,7 @@ field contains the process identifier.
 This should be the a process that you have privilege to access.
 The
 .Ar cntp
-field is allows the caller to know how many records are returned.
+field allows the caller to know how many records are returned.
 .Pp
 This function is a wrapper around
 .Xr sysctl 3

Modified: projects/random_number_generator/release/doc/en_US.ISO8859-1/hardware/article.xml
==============================================================================
--- projects/random_number_generator/release/doc/en_US.ISO8859-1/hardware/article.xml	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/release/doc/en_US.ISO8859-1/hardware/article.xml	Sat May  3 17:39:03 2014	(r265282)
@@ -1012,6 +1012,8 @@
 
       &hwlist.ral;
 
+      &hwlist.rsu;
+
       &hwlist.rum;
 
       &hwlist.run;
@@ -1024,6 +1026,8 @@
 
       &hwlist.urtw;
 
+      &hwlist.urtwn;
+
       <para>[&arch.amd64;, &arch.i386;, &arch.pc98;] Lucent
 	Technologies WaveLAN/IEEE 802.11b wireless network adapters
 	and workalikes using the Lucent Hermes, Intersil PRISM-II,

Modified: projects/random_number_generator/release/doc/share/misc/dev.archlist.txt
==============================================================================
--- projects/random_number_generator/release/doc/share/misc/dev.archlist.txt	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/release/doc/share/misc/dev.archlist.txt	Sat May  3 17:39:03 2014	(r265282)
@@ -108,6 +108,7 @@ qlxgbe	amd64
 qlxge	amd64
 rc	i386
 ral	i386,amd64
+rsu	i386,amd64
 rue	i386,pc98,amd64
 rum	i386,amd64
 run	i386,amd64

Modified: projects/random_number_generator/share/man/man4/mpr.4
==============================================================================
--- projects/random_number_generator/share/man/man4/mpr.4	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/share/man/man4/mpr.4	Sat May  3 17:39:03 2014	(r265282)
@@ -66,7 +66,7 @@ controllers.
 .Sh HARDWARE
 The following controllers are supported by the
 .Nm
-driver
+driver:
 .Pp
 .Bl -bullet -compact
 .It

Modified: projects/random_number_generator/share/man/man4/rsu.4
==============================================================================
--- projects/random_number_generator/share/man/man4/rsu.4	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/share/man/man4/rsu.4	Sat May  3 17:39:03 2014	(r265282)
@@ -15,7 +15,7 @@
 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\"
-.Dd July 29 2013
+.Dd May 3, 2014
 .Dt RSU 4
 .Os
 .Sh NAME
@@ -40,7 +40,8 @@ place the following line in
 if_rsu_load="YES"
 .Ed
 .Pp
-After you have read the license in /usr/share/doc/legal/realtek
+After you have read the license in
+.Pa /usr/share/doc/legal/realtek
 you will want to add the following lines to
 .Xr loader.conf 5 :
 .Bd -literal -offset indent
@@ -93,18 +94,19 @@ due to serious weaknesses in it.
 The
 .Nm
 driver can be configured at runtime with
-.Xr ifconfig 8
-or on boot with
-.Xr hostname 1 .
+.Xr ifconfig 8 .
 .Sh FILES
 The driver needs at least version 1.2 of the following firmware file,
 which is loaded when an interface is attached:
 .Pp
 .Bl -tag -width Ds -offset indent -compact
-.It /boot/kernel/rsu-rtl8712fw.ko
+.It Pa /boot/kernel/rsu-rtl8712fw.ko
 .El
 .Sh HARDWARE
-The following adapters should work:
+The
+.Nm
+driver provices support for Realtek RTL8188SU/RTL8192SU USB IEEE 802.11b/g/n
+wireless network adapters, including:
 .Pp
 .Bl -tag -width Ds -offset indent -compact
 .It ASUS USB-N10
@@ -149,14 +151,15 @@ The driver will reset the hardware.
 This should not happen.
 .El
 .Sh SEE ALSO
-.Xr hostname 1 ,
 .Xr intro 1 ,
-.Xr usb 3 ,
+.Xr usb 4 ,
 .Xr netintro 4 ,
 .Xr rsufw 4 ,
 .Xr wlan 4 ,
 .Xr arp 8 ,
-.Xr ifconfig 8
+.Xr hostapd 8 ,
+.Xr ifconfig 8 ,
+.Xr wpa_supplicant 8
 .Sh HISTORY
 The
 .Nm

Modified: projects/random_number_generator/share/man/man4/urtwn.4
==============================================================================
--- projects/random_number_generator/share/man/man4/urtwn.4	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/share/man/man4/urtwn.4	Sat May  3 17:39:03 2014	(r265282)
@@ -14,7 +14,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd April 25, 2014
+.Dd May 3, 2014
 .Dt URTWN 4
 .Os
 .Sh NAME
@@ -80,7 +80,10 @@ must be agreed by adding the following l
 firmware license
 .El
 .Sh HARDWARE
-The following adapters should work:
+The
+.Nm
+driver supports Realtek RTL8188CU/RTL8188EU/RTL8192CU based USB
+IEEE 802.11b/g/n wireless network adapters, including:
 .Pp
 .Bl -tag -width Ds -offset indent -compact
 .It ASUS USB-N10 NANO
@@ -122,9 +125,9 @@ The driver will reset the hardware.
 This should not happen.
 .El
 .Sh SEE ALSO
-.Xr urtwnfw 4 ,
 .Xr intro 4 ,
 .Xr netintro 4 ,
+.Xr urtwnfw 4 ,
 .Xr usb 4 ,
 .Xr wlan 4 ,
 .Xr wlan_ccmp 4 ,

Modified: projects/random_number_generator/sys/dev/drm2/radeon/radeon_drv.c
==============================================================================
--- projects/random_number_generator/sys/dev/drm2/radeon/radeon_drv.c	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/sys/dev/drm2/radeon/radeon_drv.c	Sat May  3 17:39:03 2014	(r265282)
@@ -85,6 +85,10 @@ extern int radeon_get_crtc_scanoutpos(st
 				      int *vpos, int *hpos);
 extern struct drm_ioctl_desc radeon_ioctls_kms[];
 extern int radeon_max_kms_ioctl;
+#ifdef COMPAT_FREEBSD32
+extern struct drm_ioctl_desc radeon_compat_ioctls[];
+extern int radeon_num_compat_ioctls;
+#endif
 #ifdef DUMBBELL_WIP
 int radeon_mmap(struct file *filp, struct vm_area_struct *vma);
 #endif /* DUMBBELL_WIP */
@@ -466,6 +470,10 @@ radeon_attach(device_t kdev)
 	if (radeon_modeset == 1) {
 		kms_driver.driver_features |= DRIVER_MODESET;
 		kms_driver.max_ioctl = radeon_max_kms_ioctl;
+#ifdef COMPAT_FREEBSD32
+		kms_driver.compat_ioctls = radeon_compat_ioctls;
+		kms_driver.compat_ioctls_nr = &radeon_num_compat_ioctls;
+#endif
 		radeon_register_atpx_handler();
 	}
 	dev->driver = &kms_driver;

Modified: projects/random_number_generator/sys/dev/drm2/radeon/radeon_ioc32.c
==============================================================================
--- projects/random_number_generator/sys/dev/drm2/radeon/radeon_ioc32.c	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/sys/dev/drm2/radeon/radeon_ioc32.c	Sat May  3 17:39:03 2014	(r265282)
@@ -31,10 +31,13 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-#include <linux/compat.h>
+#include "opt_compat.h"
 
-#include <drm/drmP.h>
-#include <drm/radeon_drm.h>
+#ifdef COMPAT_FREEBSD32
+
+#include <dev/drm2/drmP.h>
+#include <dev/drm2/drm.h>
+#include <dev/drm2/radeon/radeon_drm.h>
 #include "radeon_drv.h"
 
 typedef struct drm_radeon_init32 {
@@ -60,42 +63,37 @@ typedef struct drm_radeon_init32 {
 	u32 gart_textures_offset;
 } drm_radeon_init32_t;
 
-static int compat_radeon_cp_init(struct file *file, unsigned int cmd,
-				 unsigned long arg)
+static int compat_radeon_cp_init(struct drm_device *dev, void *arg,
+				 struct drm_file *file_priv)
 {
-	drm_radeon_init32_t init32;
-	drm_radeon_init_t __user *init;
+	drm_radeon_init32_t *init32;
+	drm_radeon_init_t __user init;
 
-	if (copy_from_user(&init32, (void __user *)arg, sizeof(init32)))
-		return -EFAULT;
+	init32 = arg;
 
-	init = compat_alloc_user_space(sizeof(*init));
-	if (!access_ok(VERIFY_WRITE, init, sizeof(*init))
-	    || __put_user(init32.func, &init->func)
-	    || __put_user(init32.sarea_priv_offset, &init->sarea_priv_offset)
-	    || __put_user(init32.is_pci, &init->is_pci)
-	    || __put_user(init32.cp_mode, &init->cp_mode)
-	    || __put_user(init32.gart_size, &init->gart_size)
-	    || __put_user(init32.ring_size, &init->ring_size)
-	    || __put_user(init32.usec_timeout, &init->usec_timeout)
-	    || __put_user(init32.fb_bpp, &init->fb_bpp)
-	    || __put_user(init32.front_offset, &init->front_offset)
-	    || __put_user(init32.front_pitch, &init->front_pitch)
-	    || __put_user(init32.back_offset, &init->back_offset)
-	    || __put_user(init32.back_pitch, &init->back_pitch)
-	    || __put_user(init32.depth_bpp, &init->depth_bpp)
-	    || __put_user(init32.depth_offset, &init->depth_offset)
-	    || __put_user(init32.depth_pitch, &init->depth_pitch)
-	    || __put_user(init32.fb_offset, &init->fb_offset)
-	    || __put_user(init32.mmio_offset, &init->mmio_offset)
-	    || __put_user(init32.ring_offset, &init->ring_offset)
-	    || __put_user(init32.ring_rptr_offset, &init->ring_rptr_offset)
-	    || __put_user(init32.buffers_offset, &init->buffers_offset)
-	    || __put_user(init32.gart_textures_offset,
-			  &init->gart_textures_offset))
-		return -EFAULT;
+	init.func = init32->func;
+	init.sarea_priv_offset = (unsigned long)init32->sarea_priv_offset;
+	init.is_pci = init32->is_pci;
+	init.cp_mode = init32->cp_mode;
+	init.gart_size = init32->gart_size;
+	init.ring_size = init32->ring_size;
+	init.usec_timeout = init32->usec_timeout;
+	init.fb_bpp = init32->fb_bpp;
+	init.front_offset = init32->front_offset;
+	init.front_pitch = init32->front_pitch;
+	init.back_offset = init32->back_offset;
+	init.back_pitch = init32->back_pitch;
+	init.depth_bpp = init32->depth_bpp;
+	init.depth_offset = init32->depth_offset;
+	init.depth_pitch = init32->depth_pitch;
+	init.fb_offset = (unsigned long)init32->fb_offset;
+	init.mmio_offset = (unsigned long)init32->mmio_offset;
+	init.ring_offset = (unsigned long)init32->ring_offset;
+	init.ring_rptr_offset = (unsigned long)init32->ring_rptr_offset;
+	init.buffers_offset = (unsigned long)init32->buffers_offset;
+	init.gart_textures_offset = (unsigned long)init32->gart_textures_offset;
 
-	return drm_ioctl(file, DRM_IOCTL_RADEON_CP_INIT, (unsigned long)init);
+	return radeon_cp_init(dev, &init, file_priv);
 }
 
 typedef struct drm_radeon_clear32 {
@@ -107,50 +105,37 @@ typedef struct drm_radeon_clear32 {
 	u32 depth_boxes;
 } drm_radeon_clear32_t;
 
-static int compat_radeon_cp_clear(struct file *file, unsigned int cmd,
-				  unsigned long arg)
+static int compat_radeon_cp_clear(struct drm_device *dev, void *arg,
+				  struct drm_file *file_priv)
 {
-	drm_radeon_clear32_t clr32;
-	drm_radeon_clear_t __user *clr;
+	drm_radeon_clear32_t *clr32;
+	drm_radeon_clear_t __user clr;
 
-	if (copy_from_user(&clr32, (void __user *)arg, sizeof(clr32)))
-		return -EFAULT;
+	clr32 = arg;
 
-	clr = compat_alloc_user_space(sizeof(*clr));
-	if (!access_ok(VERIFY_WRITE, clr, sizeof(*clr))
-	    || __put_user(clr32.flags, &clr->flags)
-	    || __put_user(clr32.clear_color, &clr->clear_color)
-	    || __put_user(clr32.clear_depth, &clr->clear_depth)
-	    || __put_user(clr32.color_mask, &clr->color_mask)
-	    || __put_user(clr32.depth_mask, &clr->depth_mask)
-	    || __put_user((void __user *)(unsigned long)clr32.depth_boxes,
-			  &clr->depth_boxes))
-		return -EFAULT;
+	clr.flags = clr32->flags;
+	clr.clear_color = clr32->clear_color;
+	clr.clear_depth = clr32->clear_depth;
+	clr.color_mask = clr32->color_mask;
+	clr.depth_mask = clr32->depth_mask;
+	clr.depth_boxes = (drm_radeon_clear_rect_t *)(unsigned long)clr32->depth_boxes;
 
-	return drm_ioctl(file, DRM_IOCTL_RADEON_CLEAR, (unsigned long)clr);
+	return radeon_ioctls[DRM_IOCTL_RADEON_CLEAR].func(dev, &clr, file_priv);
 }
 
 typedef struct drm_radeon_stipple32 {
 	u32 mask;
 } drm_radeon_stipple32_t;
 
-static int compat_radeon_cp_stipple(struct file *file, unsigned int cmd,
-				    unsigned long arg)
+static int compat_radeon_cp_stipple(struct drm_device *dev, void *arg,
+				    struct drm_file *file_priv)
 {
 	drm_radeon_stipple32_t __user *argp = (void __user *)arg;
-	drm_radeon_stipple_t __user *request;
-	u32 mask;
+	drm_radeon_stipple_t __user request;
 
-	if (get_user(mask, &argp->mask))
-		return -EFAULT;
+	request.mask = (unsigned int *)(unsigned long)argp->mask;
 
-	request = compat_alloc_user_space(sizeof(*request));
-	if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
-	    || __put_user((unsigned int __user *)(unsigned long)mask,
-			  &request->mask))
-		return -EFAULT;
-
-	return drm_ioctl(file, DRM_IOCTL_RADEON_STIPPLE, (unsigned long)request);
+	return radeon_ioctls[DRM_IOCTL_RADEON_STIPPLE].func(dev, &request, file_priv);
 }
 
 typedef struct drm_radeon_tex_image32 {
@@ -168,43 +153,32 @@ typedef struct drm_radeon_texture32 {
 	u32 image;
 } drm_radeon_texture32_t;
 
-static int compat_radeon_cp_texture(struct file *file, unsigned int cmd,
-				    unsigned long arg)
+static int compat_radeon_cp_texture(struct drm_device *dev, void *arg,
+				    struct drm_file *file_priv)
 {
-	drm_radeon_texture32_t req32;
-	drm_radeon_texture_t __user *request;
-	drm_radeon_tex_image32_t img32;
-	drm_radeon_tex_image_t __user *image;
-
-	if (copy_from_user(&req32, (void __user *)arg, sizeof(req32)))
-		return -EFAULT;
-	if (req32.image == 0)
+	drm_radeon_texture32_t *req32;
+	drm_radeon_texture_t __user request;
+	drm_radeon_tex_image32_t *img32;
+	drm_radeon_tex_image_t __user image;
+
+	req32 = arg;
+	if (req32->image == 0)
 		return -EINVAL;
-	if (copy_from_user(&img32, (void __user *)(unsigned long)req32.image,
-			   sizeof(img32)))
-		return -EFAULT;
-
-	request = compat_alloc_user_space(sizeof(*request) + sizeof(*image));
-	if (!access_ok(VERIFY_WRITE, request,
-		       sizeof(*request) + sizeof(*image)))
-		return -EFAULT;
-	image = (drm_radeon_tex_image_t __user *) (request + 1);
-
-	if (__put_user(req32.offset, &request->offset)
-	    || __put_user(req32.pitch, &request->pitch)
-	    || __put_user(req32.format, &request->format)
-	    || __put_user(req32.width, &request->width)
-	    || __put_user(req32.height, &request->height)
-	    || __put_user(image, &request->image)
-	    || __put_user(img32.x, &image->x)
-	    || __put_user(img32.y, &image->y)
-	    || __put_user(img32.width, &image->width)
-	    || __put_user(img32.height, &image->height)
-	    || __put_user((const void __user *)(unsigned long)img32.data,
-			  &image->data))
-		return -EFAULT;
+	img32 = (drm_radeon_tex_image32_t *)(unsigned long)req32->image;
 
-	return drm_ioctl(file, DRM_IOCTL_RADEON_TEXTURE, (unsigned long)request);
+	request.offset = req32->offset;
+	request.pitch = req32->pitch;
+	request.format = req32->format;
+	request.width = req32->width;
+	request.height = req32->height;
+	request.image = &image;
+	image.x = img32->x;
+	image.y = img32->y;
+	image.width = img32->width;
+	image.height = img32->height;
+	image.data = (void *)(unsigned long)img32->data;
+
+	return radeon_ioctls[DRM_IOCTL_RADEON_TEXTURE].func(dev, &request, file_priv);
 }
 
 typedef struct drm_radeon_vertex2_32 {
@@ -216,28 +190,22 @@ typedef struct drm_radeon_vertex2_32 {
 	u32 prim;
 } drm_radeon_vertex2_32_t;
 
-static int compat_radeon_cp_vertex2(struct file *file, unsigned int cmd,
-				    unsigned long arg)
+static int compat_radeon_cp_vertex2(struct drm_device *dev, void *arg,
+				    struct drm_file *file_priv)
 {
-	drm_radeon_vertex2_32_t req32;
-	drm_radeon_vertex2_t __user *request;
+	drm_radeon_vertex2_32_t *req32;
+	drm_radeon_vertex2_t __user request;
 
-	if (copy_from_user(&req32, (void __user *)arg, sizeof(req32)))
-		return -EFAULT;
+	req32 = arg;
 
-	request = compat_alloc_user_space(sizeof(*request));
-	if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
-	    || __put_user(req32.idx, &request->idx)
-	    || __put_user(req32.discard, &request->discard)
-	    || __put_user(req32.nr_states, &request->nr_states)
-	    || __put_user((void __user *)(unsigned long)req32.state,
-			  &request->state)
-	    || __put_user(req32.nr_prims, &request->nr_prims)
-	    || __put_user((void __user *)(unsigned long)req32.prim,
-			  &request->prim))
-		return -EFAULT;
+	request.idx = req32->idx;
+	request.discard = req32->discard;
+	request.nr_states = req32->nr_states;
+	request.state = (drm_radeon_state_t *)(unsigned long)req32->state;
+	request.nr_prims = req32->nr_prims;
+	request.prim = (drm_radeon_prim_t *)(unsigned long)req32->prim;
 
-	return drm_ioctl(file, DRM_IOCTL_RADEON_VERTEX2, (unsigned long)request);
+	return radeon_ioctls[DRM_IOCTL_RADEON_VERTEX2].func(dev, &request, file_priv);
 }
 
 typedef struct drm_radeon_cmd_buffer32 {
@@ -247,26 +215,20 @@ typedef struct drm_radeon_cmd_buffer32 {
 	u32 boxes;
 } drm_radeon_cmd_buffer32_t;
 
-static int compat_radeon_cp_cmdbuf(struct file *file, unsigned int cmd,
-				   unsigned long arg)
+static int compat_radeon_cp_cmdbuf(struct drm_device *dev, void *arg,
+				   struct drm_file *file_priv)
 {
-	drm_radeon_cmd_buffer32_t req32;
-	drm_radeon_cmd_buffer_t __user *request;
+	drm_radeon_cmd_buffer32_t *req32;
+	drm_radeon_cmd_buffer_t __user request;
 
-	if (copy_from_user(&req32, (void __user *)arg, sizeof(req32)))
-		return -EFAULT;
+	req32 = arg;
 
-	request = compat_alloc_user_space(sizeof(*request));
-	if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
-	    || __put_user(req32.bufsz, &request->bufsz)
-	    || __put_user((void __user *)(unsigned long)req32.buf,
-			  &request->buf)
-	    || __put_user(req32.nbox, &request->nbox)
-	    || __put_user((void __user *)(unsigned long)req32.boxes,
-			  &request->boxes))
-		return -EFAULT;
+	request.bufsz = req32->bufsz;
+	request.buf = (char *)(unsigned long)req32->buf;
+	request.nbox = req32->nbox;
+	request.boxes = (struct drm_clip_rect *)(unsigned long)req32->boxes;
 
-	return drm_ioctl(file, DRM_IOCTL_RADEON_CMDBUF, (unsigned long)request);
+	return radeon_ioctls[DRM_IOCTL_RADEON_CMDBUF].func(dev, &request, file_priv);
 }
 
 typedef struct drm_radeon_getparam32 {
@@ -274,23 +236,18 @@ typedef struct drm_radeon_getparam32 {
 	u32 value;
 } drm_radeon_getparam32_t;
 
-static int compat_radeon_cp_getparam(struct file *file, unsigned int cmd,
-				     unsigned long arg)
+static int compat_radeon_cp_getparam(struct drm_device *dev, void *arg,
+				     struct drm_file *file_priv)
 {
-	drm_radeon_getparam32_t req32;
-	drm_radeon_getparam_t __user *request;
+	drm_radeon_getparam32_t *req32;
+	drm_radeon_getparam_t __user request;
 
-	if (copy_from_user(&req32, (void __user *)arg, sizeof(req32)))
-		return -EFAULT;
+	req32 = arg;
 
-	request = compat_alloc_user_space(sizeof(*request));
-	if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
-	    || __put_user(req32.param, &request->param)
-	    || __put_user((void __user *)(unsigned long)req32.value,
-			  &request->value))
-		return -EFAULT;
+	request.param = req32->param;
+	request.value = (void *)(unsigned long)req32->value;
 
-	return drm_ioctl(file, DRM_IOCTL_RADEON_GETPARAM, (unsigned long)request);
+	return radeon_ioctls[DRM_IOCTL_RADEON_GETPARAM].func(dev, &request, file_priv);
 }
 
 typedef struct drm_radeon_mem_alloc32 {
@@ -300,129 +257,71 @@ typedef struct drm_radeon_mem_alloc32 {
 	u32 region_offset;	/* offset from start of fb or GART */
 } drm_radeon_mem_alloc32_t;
 
-static int compat_radeon_mem_alloc(struct file *file, unsigned int cmd,
-				   unsigned long arg)
+static int compat_radeon_mem_alloc(struct drm_device *dev, void *arg,
+				   struct drm_file *file_priv)
 {
-	drm_radeon_mem_alloc32_t req32;
-	drm_radeon_mem_alloc_t __user *request;
+	drm_radeon_mem_alloc32_t *req32;
+	drm_radeon_mem_alloc_t __user request;
 
-	if (copy_from_user(&req32, (void __user *)arg, sizeof(req32)))
-		return -EFAULT;
+	req32 = arg;
 
-	request = compat_alloc_user_space(sizeof(*request));
-	if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
-	    || __put_user(req32.region, &request->region)
-	    || __put_user(req32.alignment, &request->alignment)
-	    || __put_user(req32.size, &request->size)
-	    || __put_user((int __user *)(unsigned long)req32.region_offset,
-			  &request->region_offset))
-		return -EFAULT;
+	request.region = req32->region;
+	request.alignment = req32->alignment;
+	request.size = req32->size;
+	request.region_offset = (int *)(unsigned long)req32->region_offset;
 
-	return drm_ioctl(file, DRM_IOCTL_RADEON_ALLOC, (unsigned long)request);
+	return radeon_mem_alloc(dev, &request, file_priv);
 }
 
 typedef struct drm_radeon_irq_emit32 {
 	u32 irq_seq;
 } drm_radeon_irq_emit32_t;
 
-static int compat_radeon_irq_emit(struct file *file, unsigned int cmd,
-				  unsigned long arg)
+static int compat_radeon_irq_emit(struct drm_device *dev, void *arg,
+				  struct drm_file *file_priv)
 {
-	drm_radeon_irq_emit32_t req32;
-	drm_radeon_irq_emit_t __user *request;
+	drm_radeon_irq_emit32_t *req32;
+	drm_radeon_irq_emit_t __user request;
 
-	if (copy_from_user(&req32, (void __user *)arg, sizeof(req32)))
-		return -EFAULT;
+	req32 = arg;
 
-	request = compat_alloc_user_space(sizeof(*request));
-	if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
-	    || __put_user((int __user *)(unsigned long)req32.irq_seq,
-			  &request->irq_seq))
-		return -EFAULT;
+	request.irq_seq = (int *)(unsigned long)req32->irq_seq;
 
-	return drm_ioctl(file, DRM_IOCTL_RADEON_IRQ_EMIT, (unsigned long)request);
+	return radeon_irq_emit(dev, &request, file_priv);
 }
 
 /* The two 64-bit arches where alignof(u64)==4 in 32-bit code */
-#if defined (CONFIG_X86_64) || defined(CONFIG_IA64)
 typedef struct drm_radeon_setparam32 {
 	int param;
 	u64 value;
 } __attribute__((packed)) drm_radeon_setparam32_t;
 
-static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
-				     unsigned long arg)
+static int compat_radeon_cp_setparam(struct drm_device *dev, void *arg,
+				     struct drm_file *file_priv)
 {
-	drm_radeon_setparam32_t req32;
-	drm_radeon_setparam_t __user *request;
-
-	if (copy_from_user(&req32, (void __user *) arg, sizeof(req32)))
-		return -EFAULT;
+	drm_radeon_setparam32_t *req32;
+	drm_radeon_setparam_t __user request;
 
-	request = compat_alloc_user_space(sizeof(*request));
-	if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
-	    || __put_user(req32.param, &request->param)
-	    || __put_user((void __user *)(unsigned long)req32.value,
-			  &request->value))
-		return -EFAULT;
+	req32 = arg;
 
-	return drm_ioctl(file, DRM_IOCTL_RADEON_SETPARAM, (unsigned long) request);
-}
-#else
-#define compat_radeon_cp_setparam NULL
-#endif /* X86_64 || IA64 */
-
-static drm_ioctl_compat_t *radeon_compat_ioctls[] = {
-	[DRM_RADEON_CP_INIT] = compat_radeon_cp_init,
-	[DRM_RADEON_CLEAR] = compat_radeon_cp_clear,
-	[DRM_RADEON_STIPPLE] = compat_radeon_cp_stipple,
-	[DRM_RADEON_TEXTURE] = compat_radeon_cp_texture,
-	[DRM_RADEON_VERTEX2] = compat_radeon_cp_vertex2,
-	[DRM_RADEON_CMDBUF] = compat_radeon_cp_cmdbuf,
-	[DRM_RADEON_GETPARAM] = compat_radeon_cp_getparam,
-	[DRM_RADEON_SETPARAM] = compat_radeon_cp_setparam,
-	[DRM_RADEON_ALLOC] = compat_radeon_mem_alloc,
-	[DRM_RADEON_IRQ_EMIT] = compat_radeon_irq_emit,
+	request.param = req32->param;
+	request.value = req32->value;
+
+	return radeon_ioctls[DRM_IOCTL_RADEON_SETPARAM].func(dev, &request, file_priv);
+}
+
+struct drm_ioctl_desc radeon_compat_ioctls[] = {
+	DRM_IOCTL_DEF(DRM_RADEON_CP_INIT, compat_radeon_cp_init, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
+	DRM_IOCTL_DEF(DRM_RADEON_CLEAR, compat_radeon_cp_clear, DRM_AUTH),
+	DRM_IOCTL_DEF(DRM_RADEON_STIPPLE, compat_radeon_cp_stipple, DRM_AUTH),
+	DRM_IOCTL_DEF(DRM_RADEON_TEXTURE, compat_radeon_cp_texture, DRM_AUTH),
+	DRM_IOCTL_DEF(DRM_RADEON_VERTEX2, compat_radeon_cp_vertex2, DRM_AUTH),
+	DRM_IOCTL_DEF(DRM_RADEON_CMDBUF, compat_radeon_cp_cmdbuf, DRM_AUTH),
+	DRM_IOCTL_DEF(DRM_RADEON_GETPARAM, compat_radeon_cp_getparam, DRM_AUTH),
+	DRM_IOCTL_DEF(DRM_RADEON_SETPARAM, compat_radeon_cp_setparam, DRM_AUTH),
+	DRM_IOCTL_DEF(DRM_RADEON_ALLOC, compat_radeon_mem_alloc, DRM_AUTH),
+	DRM_IOCTL_DEF(DRM_RADEON_IRQ_EMIT, compat_radeon_irq_emit, DRM_AUTH)
 };
+int radeon_num_compat_ioctls = DRM_ARRAY_SIZE(radeon_compat_ioctls);
 
-/**
- * Called whenever a 32-bit process running under a 64-bit kernel
- * performs an ioctl on /dev/dri/card<n>.
- *
- * \param filp file pointer.
- * \param cmd command.
- * \param arg user argument.
- * \return zero on success or negative number on failure.
- */
-long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
-{
-	unsigned int nr = DRM_IOCTL_NR(cmd);
-	drm_ioctl_compat_t *fn = NULL;
-	int ret;
-
-	if (nr < DRM_COMMAND_BASE)
-		return drm_compat_ioctl(filp, cmd, arg);
-
-	if (nr < DRM_COMMAND_BASE + DRM_ARRAY_SIZE(radeon_compat_ioctls))
-		fn = radeon_compat_ioctls[nr - DRM_COMMAND_BASE];
-
-	if (fn != NULL)
-		ret = (*fn) (filp, cmd, arg);
-	else
-		ret = drm_ioctl(filp, cmd, arg);
-
-	return ret;
-}
-
-long radeon_kms_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
-{
-	unsigned int nr = DRM_IOCTL_NR(cmd);
-	int ret;
-
-	if (nr < DRM_COMMAND_BASE)
-		return drm_compat_ioctl(filp, cmd, arg);
-
-	ret = drm_ioctl(filp, cmd, arg);
-
-	return ret;
-}
+#endif

Modified: projects/random_number_generator/sys/fs/msdosfs/msdosfs_vnops.c
==============================================================================
--- projects/random_number_generator/sys/fs/msdosfs/msdosfs_vnops.c	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/sys/fs/msdosfs/msdosfs_vnops.c	Sat May  3 17:39:03 2014	(r265282)
@@ -1240,6 +1240,17 @@ abortit:
 			VOP_UNLOCK(fvp, 0);
 			goto bad;
 		}
+		/*
+		 * If ip is for a directory, then its name should always
+		 * be "." since it is for the directory entry in the
+		 * directory itself (msdosfs_lookup() always translates
+		 * to the "." entry so as to get a unique denode, except
+		 * for the root directory there are different
+		 * complications).  However, we just corrupted its name
+		 * to pass the correct name to createde().  Undo this.
+		 */
+		if ((ip->de_Attributes & ATTR_DIRECTORY) != 0)
+			bcopy(oldname, ip->de_Name, 11);
 		ip->de_refcnt++;
 		zp->de_fndoffset = from_diroffset;
 		error = removede(zp, ip);

Modified: projects/random_number_generator/sys/modules/drm2/radeonkms/Makefile
==============================================================================
--- projects/random_number_generator/sys/modules/drm2/radeonkms/Makefile	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/sys/modules/drm2/radeonkms/Makefile	Sat May  3 17:39:03 2014	(r265282)
@@ -88,7 +88,10 @@ SRCS	+=								\
 	si.c								\
 	si_blit_shaders.c
 
-#radeon_ioc32.c
+.if ${MACHINE_CPUARCH} == "amd64"
+SRCS	+= radeon_ioc32.c
+.endif
+
 #radeon_prime.c
 #--radeon_trace_points.c
 

Modified: projects/random_number_generator/sys/net/route.c
==============================================================================
--- projects/random_number_generator/sys/net/route.c	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/sys/net/route.c	Sat May  3 17:39:03 2014	(r265282)
@@ -402,15 +402,6 @@ rtalloc1_fib(struct sockaddr *dst, int r
 	int needlock;
 
 	KASSERT((fibnum < rt_numfibs), ("rtalloc1_fib: bad fibnum"));
-	switch (dst->sa_family) {
-	case AF_INET6:
-	case AF_INET:
-		/* We support multiple FIBs. */
-		break;
-	default:
-		fibnum = RT_DEFAULT_FIB;
-		break;
-	}
 	rnh = rt_tables_get_rnh(fibnum, dst->sa_family);
 	newrt = NULL;
 	if (rnh == NULL)
@@ -898,7 +889,7 @@ rt_getifa_fib(struct rt_addrinfo *info, 
  * The route must be locked.
  */
 int
-rtexpunge(struct rtentry *rt)
+rt_expunge(struct radix_node_head *rnh, struct rtentry *rt)
 {
 #if !defined(RADIX_MPATH)
 	struct radix_node *rn;
@@ -907,17 +898,10 @@ rtexpunge(struct rtentry *rt)
 	int fib;
 	struct rtentry *rt0;
 #endif
-	struct radix_node_head *rnh;
 	struct ifaddr *ifa;
 	int error = 0;
 
-	/*
-	 * Find the correct routing tree to use for this Address Family
-	 */
-	rnh = rt_tables_get_rnh(rt->rt_fibnum, rt_key(rt)->sa_family);
 	RT_LOCK_ASSERT(rt);
-	if (rnh == NULL)
-		return (EAFNOSUPPORT);
 	RADIX_NODE_HEAD_LOCK_ASSERT(rnh);
 
 #ifdef RADIX_MPATH

Modified: projects/random_number_generator/sys/net/route.h
==============================================================================
--- projects/random_number_generator/sys/net/route.h	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/sys/net/route.h	Sat May  3 17:39:03 2014	(r265282)
@@ -371,7 +371,7 @@ int	rtsock_routemsg(int, struct ifnet *i
  *    RTFREE() uses an unlocked entry.
  */
 
-int	 rtexpunge(struct rtentry *);
+int	 rt_expunge(struct radix_node_head *, struct rtentry *);
 void	 rtfree(struct rtentry *);
 int	 rt_check(struct rtentry **, struct rtentry **, struct sockaddr *);
 

Modified: projects/random_number_generator/sys/netinet/in_rmx.c
==============================================================================
--- projects/random_number_generator/sys/netinet/in_rmx.c	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/sys/netinet/in_rmx.c	Sat May  3 17:39:03 2014	(r265282)
@@ -169,9 +169,8 @@ in_clsroute(struct radix_node *rn, struc
 	if (V_rtq_reallyold != 0) {
 		rt->rt_flags |= RTPRF_OURS;
 		rt->rt_expire = time_uptime + V_rtq_reallyold;
-	} else {
-		rtexpunge(rt);
-	}
+	} else
+		rt_expunge(head, rt);
 }
 
 struct rtqk_arg {
@@ -388,6 +387,7 @@ in_detachhead(void **head, int off)
  * plug back in.
  */
 struct in_ifadown_arg {
+	struct radix_node_head *rnh;
 	struct ifaddr *ifa;
 	int del;
 };
@@ -411,7 +411,7 @@ in_ifadownkill(struct radix_node *rn, vo
 		 * Disconnect it from the tree and permit protocols
 		 * to cleanup.
 		 */
-		rtexpunge(rt);
+		rt_expunge(ap->rnh, rt);
 		/*
 		 * At this point it is an rttrash node, and in case
 		 * the above is the only reference we must free it.

Modified: projects/random_number_generator/sys/netinet6/in6_ifattach.c
==============================================================================
--- projects/random_number_generator/sys/netinet6/in6_ifattach.c	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/sys/netinet6/in6_ifattach.c	Sat May  3 17:39:03 2014	(r265282)
@@ -863,7 +863,7 @@ in6_ifdetach(struct ifnet *ifp)
 		    RT_DEFAULT_FIB);
 		if (rt) {
 			if (rt->rt_ifp == ifp)
-				rtexpunge(rt);
+				rt_expunge(rnh, rt);
 			RTFREE_LOCKED(rt);
 		}
 		RADIX_NODE_HEAD_UNLOCK(rnh);

Modified: projects/random_number_generator/tools/tools/nanobsd/nanobsd.sh
==============================================================================
--- projects/random_number_generator/tools/tools/nanobsd/nanobsd.sh	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/tools/tools/nanobsd/nanobsd.sh	Sat May  3 17:39:03 2014	(r265282)
@@ -233,7 +233,7 @@ build_kernel ( ) (
 
 	(
 	if [ -f ${NANO_KERNEL} ] ; then
-		extra="KERNCONFDIR=$(realpath $(dirname ${NANO_KERNEL}))"
+		kernconfdir_arg="KERNCONFDIR='$(realpath $(dirname ${NANO_KERNEL}))'"
 		kernconf=$(basename ${NANO_KERNEL})
 	else
 		kernconf=${NANO_KERNEL}
@@ -245,10 +245,10 @@ build_kernel ( ) (
 	unset TARGET_CPUTYPE
 	# Note: We intentionally build all modules, not only the ones in
 	# NANO_MODULES so the built world can be reused by multiple images.
-	env TARGET_ARCH=${NANO_ARCH} ${NANO_PMAKE} buildkernel \
-		SRCCONF=${SRCCONF} \
-		${extra} __MAKE_CONF=${NANO_MAKE_CONF_BUILD} \
-		KERNCONF=${kernconf}
+	eval "TARGET_ARCH=${NANO_ARCH} ${NANO_PMAKE} buildkernel \
+		SRCCONF='${SRCCONF}' \
+		__MAKE_CONF='${NANO_MAKE_CONF_BUILD}' \
+		${kernconfdir_arg} KERNCONF=${kernconf}"
 	) > ${MAKEOBJDIRPREFIX}/_.bk 2>&1
 )
 
@@ -315,19 +315,19 @@ install_kernel ( ) (
 
 	(
 	if [ -f ${NANO_KERNEL} ] ; then
-		extra="KERNCONFDIR=$(realpath $(dirname ${NANO_KERNEL}))"
+		kernconfdir_arg="KERNCONFDIR='$(realpath $(dirname ${NANO_KERNEL}))'"
 		kernconf=$(basename ${NANO_KERNEL})
 	else
 		kernconf=${NANO_KERNEL}
 	fi
 
 	cd ${NANO_SRC}
-	env TARGET_ARCH=${NANO_ARCH} ${NANO_MAKE} installkernel \
-		DESTDIR=${NANO_WORLDDIR} \
-		SRCCONF=${SRCCONF} \
-		${extra} __MAKE_CONF=${NANO_MAKE_CONF_INSTALL} \
-		KERNCONF=${kernconf} \
-		MODULES_OVERRIDE="${NANO_MODULES}"
+	eval "TARGET_ARCH=${NANO_ARCH} ${NANO_MAKE} installkernel \
+		DESTDIR='${NANO_WORLDDIR}' \
+		SRCCONF='${SRCCONF}' \
+		__MAKE_CONF='${NANO_MAKE_CONF_INSTALL}' \
+		${kernconfdir_arg} KERNCONF=${kernconf} \
+		MODULES_OVERRIDE='${NANO_MODULES}'"
 	) > ${NANO_OBJ}/_.ik 2>&1
 )
 

Modified: projects/random_number_generator/usr.bin/ssh-copy-id/ssh-copy-id.sh
==============================================================================
--- projects/random_number_generator/usr.bin/ssh-copy-id/ssh-copy-id.sh	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/usr.bin/ssh-copy-id/ssh-copy-id.sh	Sat May  3 17:39:03 2014	(r265282)
@@ -45,7 +45,7 @@ sendkey() {
 			if ! grep -sqwF "$key" "$keyfile"; then \
 				printf "$alg $key $comment\n" >> "$keyfile" ; \
 			fi ; \
-		done \
+		done ; \
 		if [ -x /sbin/restorecon ]; then \
 			/sbin/restorecon -F "$HOME/.ssh/" "$keyfile" >/dev/null 2>&1 || true ; \
 		fi

Modified: projects/random_number_generator/usr.bin/top/machine.c
==============================================================================
--- projects/random_number_generator/usr.bin/top/machine.c	Sat May  3 17:33:30 2014	(r265281)
+++ projects/random_number_generator/usr.bin/top/machine.c	Sat May  3 17:39:03 2014	(r265282)
@@ -67,6 +67,9 @@ static int namelength = TOP_USERNAME_LEN
 #else
 static int namelength = 8;
 #endif
+/* TOP_JID_LEN based on max of 999999 */
+#define TOP_JID_LEN 7
+static int jidlength;
 static int cmdlengthdelta;
 
 /* Prototypes for top internals */
@@ -101,26 +104,26 @@ struct handle {
  */
 
 static char io_header[] =
-    "  PID%s %-*.*s   VCSW  IVCSW   READ  WRITE  FAULT  TOTAL PERCENT COMMAND";
+    "  PID%*s %-*.*s   VCSW  IVCSW   READ  WRITE  FAULT  TOTAL PERCENT COMMAND";
 
 #define io_Proc_format \
-    "%5d%s %-*.*s %6ld %6ld %6ld %6ld %6ld %6ld %6.2f%% %.*s"
+    "%5d%*s %-*.*s %6ld %6ld %6ld %6ld %6ld %6ld %6.2f%% %.*s"
 
 static char smp_header_thr[] =
-    "  PID%s %-*.*s  THR PRI NICE   SIZE    RES STATE   C   TIME %7s COMMAND";
+    "  PID%*s %-*.*s  THR PRI NICE   SIZE    RES STATE   C   TIME %7s COMMAND";
 static char smp_header[] =
-    "  PID%s %-*.*s "   "PRI NICE   SIZE    RES STATE   C   TIME %7s COMMAND";
+    "  PID%*s %-*.*s "   "PRI NICE   SIZE    RES STATE   C   TIME %7s COMMAND";
 
 #define smp_Proc_format \
-    "%5d%s %-*.*s %s%3d %4s%7s %6s %-6.6s %2d%7s %6.2f%% %.*s"
+    "%5d%*s %-*.*s %s%3d %4s%7s %6s %-6.6s %2d%7s %6.2f%% %.*s"
 
 static char up_header_thr[] =
-    "  PID%s %-*.*s  THR PRI NICE   SIZE    RES STATE    TIME %7s COMMAND";
+    "  PID%*s %-*.*s  THR PRI NICE   SIZE    RES STATE    TIME %7s COMMAND";
 static char up_header[] =
-    "  PID%s %-*.*s "   "PRI NICE   SIZE    RES STATE    TIME %7s COMMAND";
+    "  PID%*s %-*.*s "   "PRI NICE   SIZE    RES STATE    TIME %7s COMMAND";
 
 #define up_Proc_format \
-    "%5d%s %-*.*s %s%3d %4s%7s %6s %-6.6s%.0d%7s %6.2f%% %.*s"
+    "%5d%*s %-*.*s %s%3d %4s%7s %6s %-6.6s%.0d%7s %6.2f%% %.*s"
 
 
 /* process state names for the "STATE" column of the display */
@@ -393,6 +396,11 @@ format_header(char *uname_field)
 {
 	static char Header[128];
 	const char *prehead;
+	
+	if (ps.jail)
+		jidlength = TOP_JID_LEN + 1;	/* +1 for extra left space. */
+	else
+		jidlength = 0;
 
 	switch (displaymode) {
 	case DISP_CPU:
@@ -406,14 +414,14 @@ format_header(char *uname_field)
 		    (ps.thread ? smp_header : smp_header_thr) :
 		    (ps.thread ? up_header : up_header_thr);
 		snprintf(Header, sizeof(Header), prehead,
-		    ps.jail ? " JID" : "",
+		    jidlength, ps.jail ? " JID" : "",
 		    namelength, namelength, uname_field,
 		    ps.wcpu ? "WCPU" : "CPU");
 		break;
 	case DISP_IO:
 		prehead = io_header;
 		snprintf(Header, sizeof(Header), prehead,
-		    ps.jail ? " JID" : "",
+		    jidlength, ps.jail ? " JID" : "",
 		    namelength, namelength, uname_field);
 		break;
 	}
@@ -806,7 +814,7 @@ format_next_process(caddr_t handle, char
 	int cpu, state;
 	struct rusage ru, *rup;
 	long p_tot, s_tot;
-	char *proc_fmt, thr_buf[6], jid_buf[6];
+	char *proc_fmt, thr_buf[6], jid_buf[TOP_JID_LEN + 1];

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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