tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
bad merge in uvm_fault_lower?
Hi,
In sys/uvm/uvm_fault.c I see three KASSERT's twice:
/* locked: maps(read), amap(if there), uobj(if !null), uobjpage(if !null) */
KASSERT(amap == NULL || mutex_owned(&amap->am_l));
KASSERT(uobj == NULL || mutex_owned(&uobj->vmobjlock));
KASSERT(uobjpage == NULL || (uobjpage->flags & PG_BUSY) != 0);
/*
* note that at this point we are done with any front or back pages.
* we are now going to focus on the center page (i.e. the one we've
* faulted on). if we have faulted on the upper (anon) layer
* [i.e. case 1], then the anon we want is anons[centeridx] (we have
* not touched it yet). if we have faulted on the bottom (uobj)
* layer [i.e. case 2] and the page was both present and available,
* then we've got a pointer to it as "uobjpage" and we've already
* made it BUSY.
*/
/*
* locked:
* maps(read), amap(if there), uobj(if !null), uobjpage(if !null)
*/
KASSERT(amap == NULL || mutex_owned(&amap->am_l));
KASSERT(uobj == NULL || mutex_owned(&uobj->vmobjlock));
KASSERT(uobjpage == NULL || (uobjpage->flags & PG_BUSY) != 0);
Alex
Home |
Main Index |
Thread Index |
Old Index