From: Roland Dreier Date: Tue, 12 Jun 2007 17:50:42 +0000 (-0700) Subject: IB/mlx4: Fix handling of wq->tail for send completions X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=614c3c85b5b4c3776439d464939c123cce679dee;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git IB/mlx4: Fix handling of wq->tail for send completions Cast the increment added to wq->tail when send completions are processed to u16 to avoid using wrong values caused by standard integer promotions. The same bug was fixed in libmlx4 by Eli Cohen . Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c index b2a290c6703a..048c5274ab1c 100644 --- a/drivers/infiniband/hw/mlx4/cq.c +++ b/drivers/infiniband/hw/mlx4/cq.c @@ -354,7 +354,7 @@ static int mlx4_ib_poll_one(struct mlx4_ib_cq *cq, if (is_send) { wq = &(*cur_qp)->sq; wqe_ctr = be16_to_cpu(cqe->wqe_index); - wq->tail += wqe_ctr - (u16) wq->tail; + wq->tail += (u16) (wqe_ctr - (u16) wq->tail); wc->wr_id = wq->wrid[wq->tail & (wq->max - 1)]; ++wq->tail; } else if ((*cur_qp)->ibqp.srq) {