Print this page
6146 seg_inherit_notsup is redundant


2531                                          * Find segment for current address
2532                                          * because current segment just got
2533                                          * split or concatenated
2534                                          */
2535                                         seg = as_segat(as, raddr);
2536                                         if (seg == NULL) {
2537                                                 AS_LOCK_EXIT(as, &as->a_lock);
2538                                                 return (ENOMEM);
2539                                         }
2540                                 } else {
2541                                         /*
2542                                          * Regular error
2543                                          */
2544                                         AS_LOCK_EXIT(as, &as->a_lock);
2545                                         return (error);
2546                                 }
2547                         }
2548                         break;
2549 
2550                 case MC_INHERIT_ZERO:
2551                         if (seg->s_ops->inherit == NULL) {
2552                                 error = ENOTSUP;
2553                         } else {
2554                                 error = segop_inherit(seg, raddr, ssize,
2555                                     SEGP_INH_ZERO);
2556                         }
2557                         if (error != 0) {
2558                                 AS_LOCK_EXIT(as, &as->a_lock);
2559                                 return (error);
2560                         }
2561                         break;
2562 
2563                 /*
2564                  * Can't happen.
2565                  */
2566                 default:
2567                         panic("as_ctl: bad operation %d", func);
2568                         /*NOTREACHED*/
2569                 }
2570 
2571                 rsize -= ssize;
2572                 raddr += ssize;
2573         }
2574 
2575         if (func == MC_LOCK)
2576                 kmem_free(mlock_map, mlock_size * sizeof (ulong_t));




2531                                          * Find segment for current address
2532                                          * because current segment just got
2533                                          * split or concatenated
2534                                          */
2535                                         seg = as_segat(as, raddr);
2536                                         if (seg == NULL) {
2537                                                 AS_LOCK_EXIT(as, &as->a_lock);
2538                                                 return (ENOMEM);
2539                                         }
2540                                 } else {
2541                                         /*
2542                                          * Regular error
2543                                          */
2544                                         AS_LOCK_EXIT(as, &as->a_lock);
2545                                         return (error);
2546                                 }
2547                         }
2548                         break;
2549 
2550                 case MC_INHERIT_ZERO:
2551                         error = segop_inherit(seg, raddr, ssize, SEGP_INH_ZERO);





2552                         if (error != 0) {
2553                                 AS_LOCK_EXIT(as, &as->a_lock);
2554                                 return (error);
2555                         }
2556                         break;
2557 
2558                 /*
2559                  * Can't happen.
2560                  */
2561                 default:
2562                         panic("as_ctl: bad operation %d", func);
2563                         /*NOTREACHED*/
2564                 }
2565 
2566                 rsize -= ssize;
2567                 raddr += ssize;
2568         }
2569 
2570         if (func == MC_LOCK)
2571                 kmem_free(mlock_map, mlock_size * sizeof (ulong_t));