--- old/usr/src/uts/common/vm/seg_dev.c	2015-11-24 09:35:08.545143448 -0500
+++ new/usr/src/uts/common/vm/seg_dev.c	2015-11-24 09:35:08.548950014 -0500
@@ -178,7 +178,6 @@
 static int	segdev_gettype(struct seg *, caddr_t);
 static int	segdev_getvp(struct seg *, caddr_t, struct vnode **);
 static int	segdev_advise(struct seg *, caddr_t, size_t, uint_t);
-static void	segdev_dump(struct seg *);
 static int	segdev_pagelock(struct seg *, caddr_t, size_t,
 		    struct page ***, enum lock_type, enum seg_rw);
 static int	segdev_getmemid(struct seg *, caddr_t, memid_t *);
@@ -205,7 +204,6 @@
 	.gettype	= segdev_gettype,
 	.getvp		= segdev_getvp,
 	.advise		= segdev_advise,
-	.dump		= segdev_dump,
 	.pagelock	= segdev_pagelock,
 	.getmemid	= segdev_getmemid,
 };
@@ -2373,14 +2371,6 @@
 }
 
 /*
- * segdev pages are not dumped, so we just return
- */
-/*ARGSUSED*/
-static void
-segdev_dump(struct seg *seg)
-{}
-
-/*
  * ddi_segmap_setup:	Used by drivers who wish specify mapping attributes
  *			for a segment.	Called from a drivers segmap(9E)
  *			routine.
--- old/usr/src/uts/common/vm/seg_kpm.c	2015-11-24 09:35:08.745335402 -0500
+++ new/usr/src/uts/common/vm/seg_kpm.c	2015-11-24 09:35:08.748892417 -0500
@@ -102,7 +102,6 @@
  */
 faultcode_t segkpm_fault(struct hat *hat, struct seg *seg, caddr_t addr,
 			size_t len, enum fault_type type, enum seg_rw rw);
-static void	segkpm_dump(struct seg *);
 static void	segkpm_badop(void);
 static int	segkpm_notsup(void);
 
@@ -127,7 +126,6 @@
 	.gettype	= SEGKPM_BADOP(int),
 	.getvp		= SEGKPM_BADOP(int),
 	.advise		= SEGKPM_BADOP(int),
-	.dump		= segkpm_dump,
 	.pagelock	= SEGKPM_NOTSUP,
 	.setpagesize	= SEGKPM_BADOP(int),
 	.getmemid	= SEGKPM_BADOP(int),
@@ -318,11 +316,3 @@
 {
 	return (ENOTSUP);
 }
-
-/*
- * segkpm pages are not dumped, so we just return
- */
-/*ARGSUSED*/
-static void
-segkpm_dump(struct seg *seg)
-{}
--- old/usr/src/uts/common/vm/seg_spt.c	2015-11-24 09:35:08.861886512 -0500
+++ new/usr/src/uts/common/vm/seg_spt.c	2015-11-24 09:35:08.865635288 -0500
@@ -136,7 +136,6 @@
 static int segspt_shmgetvp(struct seg *seg, caddr_t addr, struct vnode **vpp);
 static int segspt_shmadvise(struct seg *seg, caddr_t addr, size_t len,
 			uint_t behav);
-static void segspt_shmdump(struct seg *seg);
 static int segspt_shmpagelock(struct seg *, caddr_t, size_t,
 			struct page ***, enum lock_type, enum seg_rw);
 static int segspt_shmgetmemid(struct seg *, caddr_t, memid_t *);
@@ -160,7 +159,6 @@
 	.gettype	= segspt_shmgettype,
 	.getvp		= segspt_shmgetvp,
 	.advise		= segspt_shmadvise,
-	.dump		= segspt_shmdump,
 	.pagelock	= segspt_shmpagelock,
 	.getmemid	= segspt_shmgetmemid,
 	.getpolicy	= segspt_shmgetpolicy,
@@ -3008,13 +3006,6 @@
 	return (0);
 }
 
-/*ARGSUSED*/
-void
-segspt_shmdump(struct seg *seg)
-{
-	/* no-op for ISM segment */
-}
-
 /*
  * get a memory ID for an addr in a given segment
  */
--- old/usr/src/uts/common/vm/vm_seg.c	2015-11-24 09:35:09.044470393 -0500
+++ new/usr/src/uts/common/vm/vm_seg.c	2015-11-24 09:35:09.048141620 -0500
@@ -1964,6 +1964,9 @@
 void
 segop_dump(struct seg *seg)
 {
+	if (seg->s_ops->dump == NULL)
+		return;
+
 	seg->s_ops->dump(seg);
 }
 
--- old/usr/src/uts/i86xpv/vm/seg_mf.c	2015-11-24 09:35:09.198115083 -0500
+++ new/usr/src/uts/i86xpv/vm/seg_mf.c	2015-11-24 09:35:09.201771403 -0500
@@ -470,11 +470,6 @@
 }
 
 /*ARGSUSED*/
-static void
-segmf_dump(struct seg *seg)
-{}
-
-/*ARGSUSED*/
 static int
 segmf_pagelock(struct seg *seg, caddr_t addr, size_t len,
     struct page ***ppp, enum lock_type type, enum seg_rw rw)
@@ -753,7 +748,6 @@
 	.gettype	= segmf_gettype,
 	.getvp		= segmf_getvp,
 	.advise		= segmf_advise,
-	.dump		= segmf_dump,
 	.pagelock	= segmf_pagelock,
 	.getmemid	= segmf_getmemid,
 };
--- old/usr/src/uts/sparc/v9/vm/seg_nf.c	2015-11-24 09:35:09.323242388 -0500
+++ new/usr/src/uts/sparc/v9/vm/seg_nf.c	2015-11-24 09:35:09.326913997 -0500
@@ -73,7 +73,6 @@
 static u_offset_t segnf_getoffset(struct seg *seg, caddr_t addr);
 static int	segnf_gettype(struct seg *seg, caddr_t addr);
 static int	segnf_getvp(struct seg *seg, caddr_t addr, struct vnode **vpp);
-static void	segnf_dump(struct seg *seg);
 static int	segnf_pagelock(struct seg *seg, caddr_t addr, size_t len,
 		    struct page ***ppp, enum lock_type type, enum seg_rw rw);
 
@@ -100,7 +99,6 @@
 	.getvp		= segnf_getvp,
 	.advise		= (int (*)(struct seg *, caddr_t, size_t, uint_t))
 		segnf_nop,
-	.dump		= segnf_dump,
 	.pagelock	= segnf_pagelock,
 };
 
@@ -446,14 +444,6 @@
 	return (0);
 }
 
-/*
- * segnf pages are not dumped, so we just return
- */
-/* ARGSUSED */
-static void
-segnf_dump(struct seg *seg)
-{}
-
 /*ARGSUSED*/
 static int
 segnf_pagelock(struct seg *seg, caddr_t addr, size_t len,
