Print this page
8368 remove warlock leftovers from usr/src/uts
@@ -2359,11 +2359,10 @@
TAVOR_TNF_ERROR, "");
TAVOR_TNF_EXIT(tavor_wrid_from_reset_handling);
return (ibc_get_ci_failure(0));
}
}
- _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*swq))
qp->qp_sq_wqhdr = swq;
swq->wq_size = qp->qp_sq_bufsz;
swq->wq_head = 0;
swq->wq_tail = 0;
swq->wq_full = 0;
@@ -2387,27 +2386,23 @@
TNF_PROBE_0(tavor_wrid_from_reset_handling_wridlist_fail,
TAVOR_TNF_ERROR, "");
TAVOR_TNF_EXIT(tavor_wrid_from_reset_handling);
return (ibc_get_ci_failure(0));
}
- _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*s_wridlist))
s_wridlist->wl_wqhdr = swq;
/* Chain the new WRID list container to the workq hdr list */
mutex_enter(&swq->wq_wrid_wql->wql_lock);
tavor_wrid_wqhdr_add(swq, s_wridlist);
mutex_exit(&swq->wq_wrid_wql->wql_lock);
qp_srq_en = qp->qp_srq_en;
-#ifdef __lock_lint
- mutex_enter(&qp->qp_srqhdl->srq_lock);
-#else
if (qp_srq_en == TAVOR_QP_SRQ_ENABLED) {
mutex_enter(&qp->qp_srqhdl->srq_lock);
}
-#endif
+
/*
* Now we repeat all the above operations for the receive work queue,
* or shared receive work queue.
*
* Note: We still use the 'qp_rq_cqhdl' even in the SRQ case.
@@ -2445,26 +2440,21 @@
if (create_new_swq) {
tavor_cq_wqhdr_remove(qp->qp_sq_cqhdl,
swq);
}
-#ifdef __lock_lint
- mutex_exit(&qp->qp_srqhdl->srq_lock);
-#else
if (qp_srq_en == TAVOR_QP_SRQ_ENABLED) {
mutex_exit(&qp->qp_srqhdl->srq_lock);
}
-#endif
tavor_wrid_wqhdr_unlock_both(qp);
TNF_PROBE_0(tavor_wrid_from_reset_handling_wqhdr_fail,
TAVOR_TNF_ERROR, "");
TAVOR_TNF_EXIT(tavor_wrid_from_reset_handling);
return (ibc_get_ci_failure(0));
}
}
- _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*rwq))
/*
* Setup receive workq hdr
*
* If the QP is on an SRQ, we setup the SRQ specific fields, setting
@@ -2529,25 +2519,20 @@
}
if (create_new_rwq) {
tavor_cq_wqhdr_remove(qp->qp_rq_cqhdl, rwq);
}
-#ifdef __lock_lint
- mutex_exit(&qp->qp_srqhdl->srq_lock);
-#else
if (qp_srq_en == TAVOR_QP_SRQ_ENABLED) {
mutex_exit(&qp->qp_srqhdl->srq_lock);
}
-#endif
tavor_wrid_wqhdr_unlock_both(qp);
TNF_PROBE_0(tavor_wrid_from_reset_handling_wridlist_fail,
TAVOR_TNF_ERROR, "");
TAVOR_TNF_EXIT(tavor_wrid_from_reset_handling);
return (ibc_get_ci_failure(0));
}
- _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*r_wridlist))
/*
* Initialize the wridlist
*
* In the normal QP case, there is no special initialization needed.
@@ -2584,23 +2569,14 @@
/* Chain the WRID list "container" to the workq hdr list */
mutex_enter(&rwq->wq_wrid_wql->wql_lock);
tavor_wrid_wqhdr_add(rwq, r_wridlist);
mutex_exit(&rwq->wq_wrid_wql->wql_lock);
-#ifdef __lock_lint
- mutex_exit(&qp->qp_srqhdl->srq_lock);
-#else
if (qp_srq_en == TAVOR_QP_SRQ_ENABLED) {
mutex_exit(&qp->qp_srqhdl->srq_lock);
}
-#endif
- _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*r_wridlist))
- _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*rwq))
- _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*s_wridlist))
- _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*swq))
-
tavor_wrid_wqhdr_unlock_both(qp);
TAVOR_TNF_EXIT(tavor_wrid_from_reset_handling);
return (DDI_SUCCESS);
}
@@ -3121,16 +3097,12 @@
* things can be added or removed from the list at this point would be
* through post a work request to a QP. But if we've come this far,
* then we can be assured that there are no longer any QP associated
* with the CQ that we are trying to free.
*/
-#ifdef __lock_lint
- tavor_wrid_wqhdr_compare(NULL, NULL);
-#endif
treep = &cq->cq_wrid_wqhdr_avl_tree;
while ((curr = avl_destroy_nodes(treep, &cookie)) != NULL) {
- _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*curr))
container = curr->wq_wrid_poll;
while (container != NULL) {
to_free = container;
container = container->wl_next;
/*
@@ -3183,11 +3155,10 @@
*/
wridlist = (tavor_wrid_list_hdr_t *)kmem_zalloc(size, KM_NOSLEEP);
if (wridlist == NULL) {
return (NULL);
}
- _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*wridlist))
/* Complete the "container" initialization */
wridlist->wl_size = qsize;
wridlist->wl_full = 0;
wridlist->wl_head = 0;
@@ -3325,13 +3296,10 @@
* create a new entry because it helps us easily find the end of the
* list.
*/
cmp.cmp_qpn = qpn;
cmp.cmp_type = wq_type;
-#ifdef __lock_lint
- tavor_wrid_wqhdr_compare(NULL, NULL);
-#endif
curr = avl_find(&cq->cq_wrid_wqhdr_avl_tree, &cmp, NULL);
TAVOR_TNF_EXIT(tavor_wrid_wqhdr_find);
return (curr);
}
@@ -3362,11 +3330,10 @@
sizeof (tavor_workq_hdr_t), KM_NOSLEEP);
if (wqhdr_tmp == NULL) {
TAVOR_TNF_EXIT(tavor_wrid_wqhdr_create);
return (NULL);
}
- _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*wqhdr_tmp))
wqhdr_tmp->wq_qpn = qpn;
wqhdr_tmp->wq_type = wq_type;
if (create_wql) {
wqhdr_tmp->wq_wrid_wql = tavor_wrid_wql_create(state);
@@ -3585,28 +3552,20 @@
tavor_cqhdl_t sq_cq, rq_cq;
sq_cq = qp->qp_sq_cqhdl;
rq_cq = qp->qp_rq_cqhdl;
-_NOTE(MUTEX_ACQUIRED_AS_SIDE_EFFECT(&sq_cq->cq_wrid_wqhdr_lock))
-_NOTE(MUTEX_ACQUIRED_AS_SIDE_EFFECT(&rq_cq->cq_wrid_wqhdr_lock))
-
/*
* If both work queues (send and recv) share a completion queue, then
* grab the common lock. If they use different CQs (hence different
* "cq_wrid_wqhdr_list" locks), then grab the send one first, then the
* receive. We do this consistently and correctly in
* tavor_wrid_wqhdr_unlock_both() below to avoid introducing any kind
- * of dead lock condition. Note: We add the "__lock_lint" code here
- * to fake out warlock into thinking we've grabbed both locks (when,
- * in fact, we only needed the one).
+ * of dead lock condition.
*/
if (sq_cq == rq_cq) {
mutex_enter(&sq_cq->cq_wrid_wqhdr_lock);
-#ifdef __lock_lint
- mutex_enter(&rq_cq->cq_wrid_wqhdr_lock);
-#endif
} else {
mutex_enter(&sq_cq->cq_wrid_wqhdr_lock);
mutex_enter(&rq_cq->cq_wrid_wqhdr_lock);
}
}
@@ -3621,20 +3580,14 @@
tavor_cqhdl_t sq_cq, rq_cq;
sq_cq = qp->qp_sq_cqhdl;
rq_cq = qp->qp_rq_cqhdl;
-_NOTE(LOCK_RELEASED_AS_SIDE_EFFECT(&rq_cq->cq_wrid_wqhdr_lock))
-_NOTE(LOCK_RELEASED_AS_SIDE_EFFECT(&sq_cq->cq_wrid_wqhdr_lock))
-
/*
* See tavor_wrid_wqhdr_lock_both() above for more detail
*/
if (sq_cq == rq_cq) {
-#ifdef __lock_lint
- mutex_exit(&rq_cq->cq_wrid_wqhdr_lock);
-#endif
mutex_exit(&sq_cq->cq_wrid_wqhdr_lock);
} else {
mutex_exit(&rq_cq->cq_wrid_wqhdr_lock);
mutex_exit(&sq_cq->cq_wrid_wqhdr_lock);
}
@@ -3653,13 +3606,10 @@
ASSERT(MUTEX_HELD(&cq->cq_wrid_wqhdr_lock));
cmp.cmp_qpn = wqhdr->wq_qpn;
cmp.cmp_type = wqhdr->wq_type;
-#ifdef __lock_lint
- tavor_wrid_wqhdr_compare(NULL, NULL);
-#endif
(void) avl_find(&cq->cq_wrid_wqhdr_avl_tree, &cmp, &where);
/*
* If the CQ's work queue list is empty, then just add it.
* Otherwise, chain it to the beginning of the list.
*/
@@ -3674,13 +3624,10 @@
static void
tavor_cq_wqhdr_remove(tavor_cqhdl_t cq, tavor_workq_hdr_t *wqhdr)
{
ASSERT(MUTEX_HELD(&cq->cq_wrid_wqhdr_lock));
-#ifdef __lock_lint
- tavor_wrid_wqhdr_compare(NULL, NULL);
-#endif
/* Remove "wqhdr" from the work queue header list on "cq" */
avl_remove(&cq->cq_wrid_wqhdr_avl_tree, wqhdr);
/*
* Release reference to WQL; If this is the last reference, this call