Print this page
use NULL getmemid segop as a shorthand for ENODEV
Instead of forcing every segment driver to implement a dummy function to
return (hopefully) ENODEV, handle NULL getmemid segop function pointer as
"return ENODEV" 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 ↓ 2006 lines elided ↑ open up ↑
2007 2007  segop_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc)
2008 2008  {
2009 2009          VERIFY3P(seg->s_ops->setpagesize, !=, NULL);
2010 2010  
2011 2011          return (seg->s_ops->setpagesize(seg, addr, len, szc));
2012 2012  }
2013 2013  
2014 2014  int
2015 2015  segop_getmemid(struct seg *seg, caddr_t addr, memid_t *mp)
2016 2016  {
2017      -        VERIFY3P(seg->s_ops->getmemid, !=, NULL);
     2017 +        if (seg->s_ops->getmemid == NULL)
     2018 +                return (ENODEV);
2018 2019  
2019 2020          return (seg->s_ops->getmemid(seg, addr, mp));
2020 2021  }
2021 2022  
2022 2023  struct lgrp_mem_policy_info *
2023 2024  segop_getpolicy(struct seg *seg, caddr_t addr)
2024 2025  {
2025 2026          if (seg->s_ops->getpolicy == NULL)
2026 2027                  return (NULL);
2027 2028  
↓ open down ↓ 20 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX