--- old/usr/src/uts/common/vm/seg_dev.c	2015-11-24 09:35:00.257075433 -0500
+++ new/usr/src/uts/common/vm/seg_dev.c	2015-11-24 09:35:00.261000733 -0500
@@ -183,7 +183,6 @@
 		    struct page ***, enum lock_type, enum seg_rw);
 static int	segdev_setpagesize(struct seg *, caddr_t, size_t, uint_t);
 static int	segdev_getmemid(struct seg *, caddr_t, memid_t *);
-static int	segdev_capable(struct seg *, segcapability_t);
 
 /*
  * XXX	this struct is used by rootnex_map_fault to identify
@@ -211,7 +210,6 @@
 	.pagelock	= segdev_pagelock,
 	.setpagesize	= segdev_setpagesize,
 	.getmemid	= segdev_getmemid,
-	.capable	= segdev_capable,
 };
 
 /*
@@ -4028,13 +4026,6 @@
 	return (0);
 }
 
-/*ARGSUSED*/
-static int
-segdev_capable(struct seg *seg, segcapability_t capability)
-{
-	return (0);
-}
-
 /*
  * ddi_umem_alloc() non-pageable quantum cache max size.
  * This is just a SWAG.
--- old/usr/src/uts/common/vm/seg_kp.c	2015-11-24 09:35:00.461733581 -0500
+++ new/usr/src/uts/common/vm/seg_kp.c	2015-11-24 09:35:00.465474022 -0500
@@ -95,7 +95,6 @@
 			size_t len, struct segkp_data *kpd, uint_t flags);
 static struct	segkp_data *segkp_find(struct seg *seg, caddr_t vaddr);
 static int	segkp_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp);
-static int	segkp_capable(struct seg *seg, segcapability_t capability);
 
 /*
  * Lock used to protect the hash table(s) and caches.
@@ -165,7 +164,6 @@
 	.pagelock	= segkp_pagelock,
 	.setpagesize	= SEGKP_BADOP(int),
 	.getmemid	= segkp_getmemid,
-	.capable	= segkp_capable,
 };
 
 
@@ -1402,13 +1400,6 @@
 	return (ENODEV);
 }
 
-/*ARGSUSED*/
-static int
-segkp_capable(struct seg *seg, segcapability_t capability)
-{
-	return (0);
-}
-
 #include <sys/mem_config.h>
 
 /*ARGSUSED*/
--- old/usr/src/uts/common/vm/seg_kpm.c	2015-11-24 09:35:00.603597508 -0500
+++ new/usr/src/uts/common/vm/seg_kpm.c	2015-11-24 09:35:00.607264494 -0500
@@ -105,7 +105,6 @@
 static void	segkpm_dump(struct seg *);
 static void	segkpm_badop(void);
 static int	segkpm_notsup(void);
-static int	segkpm_capable(struct seg *, segcapability_t);
 
 #define	SEGKPM_BADOP(t)	(t(*)())segkpm_badop
 #define	SEGKPM_NOTSUP	(int(*)())segkpm_notsup
@@ -133,7 +132,6 @@
 	.setpagesize	= SEGKPM_BADOP(int),
 	.getmemid	= SEGKPM_BADOP(int),
 	.getpolicy	= SEGKPM_BADOP(lgrp_mem_policy_info_t *),
-	.capable	= segkpm_capable,
 };
 
 /*
@@ -328,13 +326,3 @@
 static void
 segkpm_dump(struct seg *seg)
 {}
-
-/*
- * We claim to have no special capabilities.
- */
-/*ARGSUSED*/
-static int
-segkpm_capable(struct seg *seg, segcapability_t capability)
-{
-	return (0);
-}
--- old/usr/src/uts/common/vm/seg_map.c	2015-11-24 09:35:00.720371351 -0500
+++ new/usr/src/uts/common/vm/seg_map.c	2015-11-24 09:35:00.724354094 -0500
@@ -89,7 +89,6 @@
 			enum seg_rw rw);
 static void	segmap_badop(void);
 static int	segmap_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp);
-static int	segmap_capable(struct seg *seg, segcapability_t capability);
 
 /* segkpm support */
 static caddr_t	segmap_pagecreate_kpm(struct seg *, vnode_t *, u_offset_t,
@@ -120,7 +119,6 @@
 	.pagelock	= segmap_pagelock,
 	.setpagesize	= SEGMAP_BADOP(int),
 	.getmemid	= segmap_getmemid,
-	.capable	= segmap_capable,
 };
 
 /*
@@ -2187,13 +2185,6 @@
 	return (0);
 }
 
-/*ARGSUSED*/
-static int
-segmap_capable(struct seg *seg, segcapability_t capability)
-{
-	return (0);
-}
-
 
 #ifdef	SEGKPM_SUPPORT
 
--- old/usr/src/uts/common/vm/seg_spt.c	2015-11-24 09:35:00.883343520 -0500
+++ new/usr/src/uts/common/vm/seg_spt.c	2015-11-24 09:35:00.887001734 -0500
@@ -142,7 +142,6 @@
 static int segspt_shmsetpgsz(struct seg *, caddr_t, size_t, uint_t);
 static int segspt_shmgetmemid(struct seg *, caddr_t, memid_t *);
 static lgrp_mem_policy_info_t *segspt_shmgetpolicy(struct seg *, caddr_t);
-static int segspt_shmcapable(struct seg *, segcapability_t);
 
 struct seg_ops segspt_shmops = {
 	.dup		= segspt_shmdup,
@@ -167,7 +166,6 @@
 	.setpagesize	= segspt_shmsetpgsz,
 	.getmemid	= segspt_shmgetmemid,
 	.getpolicy	= segspt_shmgetpolicy,
-	.capable	= segspt_shmcapable,
 };
 
 static void segspt_purge(struct seg *seg);
@@ -3106,10 +3104,3 @@
 
 	return (policy_info);
 }
-
-/*ARGSUSED*/
-static int
-segspt_shmcapable(struct seg *seg, segcapability_t capability)
-{
-	return (0);
-}
--- old/usr/src/uts/common/vm/seg_vn.c	2015-11-24 09:35:01.187759841 -0500
+++ new/usr/src/uts/common/vm/seg_vn.c	2015-11-24 09:35:01.191759507 -0500
@@ -134,7 +134,6 @@
 static int	segvn_getmemid(struct seg *seg, caddr_t addr,
 		    memid_t *memidp);
 static lgrp_mem_policy_info_t	*segvn_getpolicy(struct seg *, caddr_t);
-static int	segvn_capable(struct seg *seg, segcapability_t capable);
 static int	segvn_inherit(struct seg *, caddr_t, size_t, uint_t);
 
 struct	seg_ops segvn_ops = {
@@ -160,7 +159,6 @@
 	.setpagesize	= segvn_setpagesize,
 	.getmemid	= segvn_getmemid,
 	.getpolicy	= segvn_getpolicy,
-	.capable	= segvn_capable,
 	.inherit	= segvn_inherit,
 };
 
@@ -9691,13 +9689,6 @@
 	return (policy_info);
 }
 
-/*ARGSUSED*/
-static int
-segvn_capable(struct seg *seg, segcapability_t capability)
-{
-	return (0);
-}
-
 /*
  * Bind text vnode segment to an amp. If we bind successfully mappings will be
  * established to per vnode mapping per lgroup amp pages instead of to vnode
--- old/usr/src/uts/common/vm/vm_seg.c	2015-11-24 09:35:01.781625172 -0500
+++ new/usr/src/uts/common/vm/vm_seg.c	2015-11-24 09:35:01.785370917 -0500
@@ -1998,6 +1998,9 @@
 int
 segop_capable(struct seg *seg, segcapability_t cap)
 {
+	if (seg->s_ops->capable == NULL)
+		return (0);
+
 	return (seg->s_ops->capable(seg, cap));
 }
 
--- old/usr/src/uts/i86xpv/vm/seg_mf.c	2015-11-24 09:35:01.933770563 -0500
+++ new/usr/src/uts/i86xpv/vm/seg_mf.c	2015-11-24 09:35:01.937540423 -0500
@@ -499,13 +499,6 @@
 	return (0);
 }
 
-/*ARGSUSED*/
-static int
-segmf_capable(struct seg *seg, segcapability_t capability)
-{
-	return (0);
-}
-
 /*
  * Add a set of contiguous foreign MFNs to the segment. soft-locking them.  The
  * pre-faulting is necessary due to live migration; in particular we must
@@ -771,5 +764,4 @@
 	.pagelock	= segmf_pagelock,
 	.setpagesize	= segmf_setpagesize,
 	.getmemid	= segmf_getmemid,
-	.capable	= segmf_capable,
 };
