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_as.c
          +++ new/usr/src/uts/common/vm/vm_as.c
↓ open down ↓ 3514 lines elided ↑ open up ↑
3515 3515  {
3516 3516          struct seg      *seg;
3517 3517          int             sts;
3518 3518  
3519 3519          AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
3520 3520          seg = as_segat(as, addr);
3521 3521          if (seg == NULL) {
3522 3522                  AS_LOCK_EXIT(as, &as->a_lock);
3523 3523                  return (EFAULT);
3524 3524          }
3525      -        /*
3526      -         * catch old drivers which may not support getmemid
3527      -         */
3528      -        if (seg->s_ops->getmemid == NULL) {
3529      -                AS_LOCK_EXIT(as, &as->a_lock);
3530      -                return (ENODEV);
3531      -        }
3532 3525  
3533 3526          sts = segop_getmemid(seg, addr, memidp);
3534 3527  
3535 3528          AS_LOCK_EXIT(as, &as->a_lock);
3536 3529          return (sts);
3537 3530  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX