diff options
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_srq.c | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_srq.c b/drivers/infiniband/hw/mthca/mthca_srq.c index 553d681f6813..ec63adc1099c 100644 --- a/drivers/infiniband/hw/mthca/mthca_srq.c +++ b/drivers/infiniband/hw/mthca/mthca_srq.c | |||
@@ -475,11 +475,7 @@ void mthca_free_srq_wqe(struct mthca_srq *srq, u32 wqe_addr) | |||
475 | 475 | ||
476 | spin_lock(&srq->lock); | 476 | spin_lock(&srq->lock); |
477 | 477 | ||
478 | if (likely(srq->first_free >= 0)) | 478 | *wqe_to_link(get_wqe(srq, srq->last_free)) = ind; |
479 | *wqe_to_link(get_wqe(srq, srq->last_free)) = ind; | ||
480 | else | ||
481 | srq->first_free = ind; | ||
482 | |||
483 | *wqe_to_link(get_wqe(srq, ind)) = -1; | 479 | *wqe_to_link(get_wqe(srq, ind)) = -1; |
484 | srq->last_free = ind; | 480 | srq->last_free = ind; |
485 | 481 | ||
@@ -506,15 +502,7 @@ int mthca_tavor_post_srq_recv(struct ib_srq *ibsrq, struct ib_recv_wr *wr, | |||
506 | first_ind = srq->first_free; | 502 | first_ind = srq->first_free; |
507 | 503 | ||
508 | for (nreq = 0; wr; wr = wr->next) { | 504 | for (nreq = 0; wr; wr = wr->next) { |
509 | ind = srq->first_free; | 505 | ind = srq->first_free; |
510 | |||
511 | if (unlikely(ind < 0)) { | ||
512 | mthca_err(dev, "SRQ %06x full\n", srq->srqn); | ||
513 | err = -ENOMEM; | ||
514 | *bad_wr = wr; | ||
515 | break; | ||
516 | } | ||
517 | |||
518 | wqe = get_wqe(srq, ind); | 506 | wqe = get_wqe(srq, ind); |
519 | next_ind = *wqe_to_link(wqe); | 507 | next_ind = *wqe_to_link(wqe); |
520 | 508 | ||
@@ -614,15 +602,7 @@ int mthca_arbel_post_srq_recv(struct ib_srq *ibsrq, struct ib_recv_wr *wr, | |||
614 | spin_lock_irqsave(&srq->lock, flags); | 602 | spin_lock_irqsave(&srq->lock, flags); |
615 | 603 | ||
616 | for (nreq = 0; wr; ++nreq, wr = wr->next) { | 604 | for (nreq = 0; wr; ++nreq, wr = wr->next) { |
617 | ind = srq->first_free; | 605 | ind = srq->first_free; |
618 | |||
619 | if (unlikely(ind < 0)) { | ||
620 | mthca_err(dev, "SRQ %06x full\n", srq->srqn); | ||
621 | err = -ENOMEM; | ||
622 | *bad_wr = wr; | ||
623 | break; | ||
624 | } | ||
625 | |||
626 | wqe = get_wqe(srq, ind); | 606 | wqe = get_wqe(srq, ind); |
627 | next_ind = *wqe_to_link(wqe); | 607 | next_ind = *wqe_to_link(wqe); |
628 | 608 | ||