Print this page
patch as-lock-macro-simplification
*** 660,675 ****
error = ENOMEM;
goto cleanup;
}
locked->uioa_ppp = (void **)pfnp;
locked->uioa_pfncnt = pcnt;
! AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
while (pcnt-- > 0) {
*pfnp++ = hat_getpfnum(as->a_hat, addr);
addr += PAGESIZE;
}
! AS_LOCK_EXIT(as, &as->a_lock);
} else {
/* Have a page_t list, save it */
locked->uioa_ppp = (void **)pages;
locked->uioa_pfncnt = 0;
}
--- 660,675 ----
error = ENOMEM;
goto cleanup;
}
locked->uioa_ppp = (void **)pfnp;
locked->uioa_pfncnt = pcnt;
! AS_LOCK_ENTER(as, RW_READER);
while (pcnt-- > 0) {
*pfnp++ = hat_getpfnum(as->a_hat, addr);
addr += PAGESIZE;
}
! AS_LOCK_EXIT(as);
} else {
/* Have a page_t list, save it */
locked->uioa_ppp = (void **)pages;
locked->uioa_pfncnt = 0;
}