diff --git a/[refs] b/[refs] index dff510108d91..238975bff1fb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 17c2b53adbf1ebd7a8b6a63e2597199676426dbf +refs/heads/master: 129a10fb81309f455eeb444560ec38657d29c46f diff --git a/trunk/drivers/infiniband/hw/ehca/ehca_reqs.c b/trunk/drivers/infiniband/hw/ehca/ehca_reqs.c index acb8649151e0..cea3eba9c83e 100644 --- a/trunk/drivers/infiniband/hw/ehca/ehca_reqs.c +++ b/trunk/drivers/infiniband/hw/ehca/ehca_reqs.c @@ -680,8 +680,10 @@ static inline int ehca_poll_cq_one(struct ib_cq *cq, struct ib_wc *wc) read_lock(&ehca_qp_idr_lock); my_qp = idr_find(&ehca_qp_idr, cqe->qp_token); - wc->qp = &my_qp->ib_qp; read_unlock(&ehca_qp_idr_lock); + if (!my_qp) + goto repoll; + wc->qp = &my_qp->ib_qp; wc->byte_len = cqe->nr_bytes_transferred; wc->pkey_index = cqe->pkey_index;