Print this page
patch as-lock-macro-simplification
@@ -787,16 +787,16 @@
if (pgcnt == 0) {
return (DDI_FAILURE);
}
- AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+ AS_LOCK_ENTER(as, RW_READER);
seg = as_findseg(as, state->bt_map.um_guest_pages, 0);
if ((seg == NULL) || ((uaddr + state->bt_map.um_guest_size) >
(seg->s_base + seg->s_size))) {
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
return (DDI_FAILURE);
}
/*
* lock down the htables so the HAT can't steal them. Register the
@@ -813,11 +813,11 @@
uaddr += PAGESIZE;
}
state->bt_map.um_registered = B_TRUE;
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
return (DDI_SUCCESS);
}
@@ -848,15 +848,15 @@
/* unmap any outstanding req's grefs */
xpvtap_rs_flush(state->bt_map.um_rs, xpvtap_user_request_unmap, state);
/* Unlock the gref pages */
for (i = 0; i < pgcnt; i++) {
- AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
+ AS_LOCK_ENTER(as, RW_WRITER);
hat_prepare_mapping(as->a_hat, uaddr, NULL);
hat_unload(as->a_hat, uaddr, PAGESIZE, HAT_UNLOAD_UNLOCK);
hat_release_mapping(as->a_hat, uaddr);
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
uaddr += PAGESIZE;
}
/* remove the callback (which is this routine) */
(void) as_delete_callback(as, arg);
@@ -1226,15 +1226,15 @@
}
/* get the apps gref address */
uaddr = XPVTAP_GREF_REQADDR(state->bt_map.um_guest_pages, *uid);
- AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+ AS_LOCK_ENTER(as, RW_READER);
seg = as_findseg(as, state->bt_map.um_guest_pages, 0);
if ((seg == NULL) || ((uaddr + mmu_ptob(req->nr_segments)) >
(seg->s_base + seg->s_size))) {
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
return (DDI_FAILURE);
}
/* if we are reading from disk, we are writing into memory */
flags = 0;
@@ -1247,11 +1247,11 @@
gref[i] = req->seg[i].gref;
}
(void) segmf_add_grefs(seg, uaddr, flags, gref, req->nr_segments,
domid);
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
return (DDI_SUCCESS);
}
@@ -1312,25 +1312,25 @@
/* unmap the grefs for this request */
if ((req->operation != BLKIF_OP_WRITE_BARRIER) &&
(req->operation != BLKIF_OP_FLUSH_DISKCACHE) &&
(req->nr_segments != 0)) {
uaddr = XPVTAP_GREF_REQADDR(state->bt_map.um_guest_pages, uid);
- AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+ AS_LOCK_ENTER(as, RW_READER);
seg = as_findseg(as, state->bt_map.um_guest_pages, 0);
if ((seg == NULL) || ((uaddr + mmu_ptob(req->nr_segments)) >
(seg->s_base + seg->s_size))) {
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
xpvtap_rs_free(state->bt_map.um_rs, uid);
return;
}
e = segmf_release_grefs(seg, uaddr, req->nr_segments);
if (e != 0) {
cmn_err(CE_WARN, "unable to release grefs");
}
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
}
/* free up the user ring id */
xpvtap_rs_free(state->bt_map.um_rs, uid);
}