| From b414fa01c31318383ae29d9d23cb9ca4184bbd86 Mon Sep 17 00:00:00 2001 |
| From: Steve Wise <swise@opengridcomputing.com> |
| Date: Thu, 15 Dec 2016 08:09:35 -0800 |
| Subject: [PATCH] iw_cxgb4: set correct FetchBurstMax for QPs |
| |
| commit b414fa01c31318383ae29d9d23cb9ca4184bbd86 upstream. |
| |
| The current QP FetchBurstMax value is 256B, which |
| is incorrect since a WR can exceed that value. The |
| result being a partial WR fetched by hardware, and |
| a fatal "bad WR" error posted by the SGE. |
| |
| So bump the FetchBurstMax to 512B. |
| |
| Signed-off-by: Steve Wise <swise@opengridcomputing.com> |
| Signed-off-by: Doug Ledford <dledford@redhat.com> |
| |
| diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c |
| index f57deba6717c..108c8837ba58 100644 |
| --- a/drivers/infiniband/hw/cxgb4/qp.c |
| +++ b/drivers/infiniband/hw/cxgb4/qp.c |
| @@ -321,7 +321,8 @@ static int create_qp(struct c4iw_rdev *rdev, struct t4_wq *wq, |
| FW_RI_RES_WR_DCAEN_V(0) | |
| FW_RI_RES_WR_DCACPU_V(0) | |
| FW_RI_RES_WR_FBMIN_V(2) | |
| - FW_RI_RES_WR_FBMAX_V(2) | |
| + (t4_sq_onchip(&wq->sq) ? FW_RI_RES_WR_FBMAX_V(2) : |
| + FW_RI_RES_WR_FBMAX_V(3)) | |
| FW_RI_RES_WR_CIDXFTHRESHO_V(0) | |
| FW_RI_RES_WR_CIDXFTHRESH_V(0) | |
| FW_RI_RES_WR_EQSIZE_V(eqsize)); |
| @@ -345,7 +346,7 @@ static int create_qp(struct c4iw_rdev *rdev, struct t4_wq *wq, |
| FW_RI_RES_WR_DCAEN_V(0) | |
| FW_RI_RES_WR_DCACPU_V(0) | |
| FW_RI_RES_WR_FBMIN_V(2) | |
| - FW_RI_RES_WR_FBMAX_V(2) | |
| + FW_RI_RES_WR_FBMAX_V(3) | |
| FW_RI_RES_WR_CIDXFTHRESHO_V(0) | |
| FW_RI_RES_WR_CIDXFTHRESH_V(0) | |
| FW_RI_RES_WR_EQSIZE_V(eqsize)); |
| -- |
| 2.12.0 |
| |