mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
RDMA/bnxt_re: synchronize poll_cq and req_notify_cq verbs
Synchronize poll_cq and req_notify_cq verbs using cq_lock, instead of the lower level qplib->hwq.lock. Signed-off-by: Selvin Xavier <[email protected]> Signed-off-by: Doug Ledford <[email protected]>
This commit is contained in:
parent
c88a7858d7
commit
051276658b
1 changed files with 10 additions and 5 deletions
|
|
@ -2996,8 +2996,10 @@ int bnxt_re_req_notify_cq(struct ib_cq *ib_cq,
|
|||
enum ib_cq_notify_flags ib_cqn_flags)
|
||||
{
|
||||
struct bnxt_re_cq *cq = container_of(ib_cq, struct bnxt_re_cq, ib_cq);
|
||||
int type = 0;
|
||||
int type = 0, rc = 0;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&cq->cq_lock, flags);
|
||||
/* Trigger on the very next completion */
|
||||
if (ib_cqn_flags & IB_CQ_NEXT_COMP)
|
||||
type = DBR_DBR_TYPE_CQ_ARMALL;
|
||||
|
|
@ -3007,12 +3009,15 @@ int bnxt_re_req_notify_cq(struct ib_cq *ib_cq,
|
|||
|
||||
/* Poll to see if there are missed events */
|
||||
if ((ib_cqn_flags & IB_CQ_REPORT_MISSED_EVENTS) &&
|
||||
!(bnxt_qplib_is_cq_empty(&cq->qplib_cq)))
|
||||
return 1;
|
||||
|
||||
!(bnxt_qplib_is_cq_empty(&cq->qplib_cq))) {
|
||||
rc = 1;
|
||||
goto exit;
|
||||
}
|
||||
bnxt_qplib_req_notify_cq(&cq->qplib_cq, type);
|
||||
|
||||
return 0;
|
||||
exit:
|
||||
spin_unlock_irqrestore(&cq->cq_lock, flags);
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Memory Regions */
|
||||
|
|
|
|||
Loading…
Reference in a new issue