IB/mlx4: Check if SRQ is full when posting receive
authorRoland Dreier <rolandd@cisco.com>
Mon, 21 May 2007 03:19:24 +0000 (20:19 -0700)
committerRoland Dreier <rolandd@cisco.com>
Mon, 21 May 2007 03:19:24 +0000 (20:19 -0700)
Make mlx4_post_srq_recv() fail if the SRQ is full (head == tail).

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/mlx4/srq.c

index 42ab4a801d6a9ba4f49f9902cd91fa12726c18c6..12fac1c8989dc34bd959aa2735fbf692844c745b 100644 (file)
@@ -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);