Просмотр исходного кода

IB/mlx4: Check if SRQ is full when posting receive

Make mlx4_post_srq_recv() fail if the SRQ is full (head == tail).

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Roland Dreier 18 лет назад
Родитель
Сommit
56a8c8b6ac
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      drivers/infiniband/hw/mlx4/srq.c

+ 6 - 0
drivers/infiniband/hw/mlx4/srq.c

@@ -297,6 +297,12 @@ int mlx4_ib_post_srq_recv(struct ib_srq *ibsrq, struct ib_recv_wr *wr,
 			break;
 		}
 
+		if (unlikely(srq->head == srq->tail)) {
+			err = -ENOMEM;
+			*bad_wr = wr;
+			break;
+		}
+
 		srq->wrid[srq->head] = wr->wr_id;
 
 		next      = get_wqe(srq, srq->head);