Print this page
const-ify make segment ops structures
There is no reason to keep the segment ops structures writable.

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/i86xpv/vm/seg_mf.c
          +++ new/usr/src/uts/i86xpv/vm/seg_mf.c
↓ open down ↓ 91 lines elided ↑ open up ↑
  92   92  struct segmf_data {
  93   93          kmutex_t        lock;
  94   94          struct vnode    *vp;
  95   95          uchar_t         prot;
  96   96          uchar_t         maxprot;
  97   97          size_t          softlockcnt;
  98   98          domid_t         domid;
  99   99          segmf_map_t     *map;
 100  100  };
 101  101  
 102      -static struct seg_ops segmf_ops;
      102 +static const struct seg_ops segmf_ops;
 103  103  
 104  104  static int segmf_fault_gref_range(struct seg *seg, caddr_t addr, size_t len);
 105  105  
 106  106  static struct segmf_data *
 107  107  segmf_data_zalloc(struct seg *seg)
 108  108  {
 109  109          struct segmf_data *data = kmem_zalloc(sizeof (*data), KM_SLEEP);
 110  110  
 111  111          mutex_init(&data->lock, "segmf.lock", MUTEX_DEFAULT, NULL);
 112  112          seg->s_ops = &segmf_ops;
↓ open down ↓ 616 lines elided ↑ open up ↑
 729  729          /* save handle for segmf_release_grefs() and mark it as mapped */
 730  730          for (i = 0; i < cnt; i++) {
 731  731                  ASSERT(mapop[i].status == GNTST_okay);
 732  732                  map[i].u.g.g_handle = mapop[i].handle;
 733  733                  map[i].u.g.g_flags |= SEGMF_GFLAGS_MAPPED;
 734  734          }
 735  735  
 736  736          return (0);
 737  737  }
 738  738  
 739      -static struct seg_ops segmf_ops = {
      739 +static const struct seg_ops segmf_ops = {
 740  740          .dup            = segmf_dup,
 741  741          .unmap          = segmf_unmap,
 742  742          .free           = segmf_free,
 743  743          .fault          = segmf_fault,
 744  744          .faulta         = segmf_faulta,
 745  745          .setprot        = segmf_setprot,
 746  746          .checkprot      = segmf_checkprot,
 747  747          .kluster        = segmf_kluster,
 748  748          .sync           = segmf_sync,
 749  749          .incore         = segmf_incore,
 750  750          .lockop         = segmf_lockop,
 751  751          .getprot        = segmf_getprot,
 752  752          .getoffset      = segmf_getoffset,
 753  753          .gettype        = segmf_gettype,
 754  754          .getvp          = segmf_getvp,
 755  755          .advise         = segmf_advise,
 756  756          .dump           = segmf_dump,
 757  757          .pagelock       = segmf_pagelock,
 758  758          .getmemid       = segmf_getmemid,
 759  759  };
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX