Print this page
use NULL setpagesize segop as a shorthand for ENOTSUP
Instead of forcing every segment driver to implement a dummp function to
return (hopefully) ENOTSUP, handle NULL setpagesize segop function pointer
as "return ENOTSUP" shorthand.

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/vm/vm_seg.c
          +++ new/usr/src/uts/common/vm/vm_seg.c
↓ open down ↓ 1998 lines elided ↑ open up ↑
1999 1999      enum lock_type type, enum seg_rw rw)
2000 2000  {
2001 2001          VERIFY3P(seg->s_ops->pagelock, !=, NULL);
2002 2002  
2003 2003          return (seg->s_ops->pagelock(seg, addr, len, page, type, rw));
2004 2004  }
2005 2005  
2006 2006  int
2007 2007  segop_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc)
2008 2008  {
2009      -        VERIFY3P(seg->s_ops->setpagesize, !=, NULL);
     2009 +        if (seg->s_ops->setpagesize == NULL)
     2010 +                return (ENOTSUP);
2010 2011  
2011 2012          return (seg->s_ops->setpagesize(seg, addr, len, szc));
2012 2013  }
2013 2014  
2014 2015  int
2015 2016  segop_getmemid(struct seg *seg, caddr_t addr, memid_t *mp)
2016 2017  {
2017 2018          if (seg->s_ops->getmemid == NULL)
2018 2019                  return (ENODEV);
2019 2020  
↓ open down ↓ 29 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX