On Tue, 24 Nov 2009 11:36:46 -0600 frank zago <[email protected]> wrote:
Hi Frank, > Signed-off-by: Frank Zago <[email protected]> > Index: linux-2.6.31/drivers/infiniband/hw/ehca/ehca_reqs.c > =================================================================== > --- linux-2.6.31.orig/drivers/infiniband/hw/ehca/ehca_reqs.c 2009-11-23 > 21:23:08.000000000 -0600 > +++ linux-2.6.31/drivers/infiniband/hw/ehca/ehca_reqs.c 2009-11-23 > 21:25:48.000000000 -0600 > @@ -519,7 +519,7 @@ > if (unlikely(!HAS_RQ(my_qp))) { > ehca_err(dev, "QP has no RQ ehca_qp=%p qp_num=%x ext_type=%d", > my_qp, my_qp->real_qp_num, my_qp->ext_type); > - return -ENODEV; > + ret = -ENODEV; aren't you missing a goto statement here? > } > > /* LOCK the QUEUE */ > @@ -533,13 +533,9 @@ > wqe_p = ipz_qeit_get_inc(&my_qp->ipz_rqueue); > if (unlikely(!wqe_p)) { > /* too many posted work requests: queue overflow */ > - if (bad_recv_wr) > - *bad_recv_wr = cur_recv_wr; > - if (wqe_cnt == 0) { > - ret = -ENOMEM; > - ehca_err(dev, "Too many posted WQEs " > - "qp_num=%x", my_qp->real_qp_num); > - } > + ret = -ENOMEM; > + ehca_err(dev, "Too many posted WQEs " > + "qp_num=%x", my_qp->real_qp_num); > goto post_recv_exit0; > } > /* > @@ -558,11 +554,9 @@ > if (unlikely(ret)) { > my_qp->ipz_rqueue.current_q_offset = start_offset; > *bad_recv_wr = cur_recv_wr; > - if (wqe_cnt == 0) { > - ret = -EINVAL; > - ehca_err(dev, "Could not write WQE " > - "qp_num=%x", my_qp->real_qp_num); > - } > + ret = -EINVAL; > + ehca_err(dev, "Could not write WQE " > + "qp_num=%x", my_qp->real_qp_num); > goto post_recv_exit0; > } > > @@ -581,6 +575,11 @@ > ehca_dbg(dev, "ehca_qp=%p qp_num=%x wqe_cnt=%d ret=%i", > my_qp, my_qp->real_qp_num, wqe_cnt, ret); > spin_unlock_irqrestore(&my_qp->spinlock_r, flags); > + > +out: > + if (ret) > + *bad_recv_wr = cur_recv_wr; > + > return ret; > } > > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
