]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Feb 2017 10:28:27 +0000 (11:28 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Feb 2017 10:28:27 +0000 (11:28 +0100)
added patches:
iw_cxgb4-set-correct-fetchburstmax-for-qps.patch

queue-4.9/iw_cxgb4-set-correct-fetchburstmax-for-qps.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/iw_cxgb4-set-correct-fetchburstmax-for-qps.patch b/queue-4.9/iw_cxgb4-set-correct-fetchburstmax-for-qps.patch
new file mode 100644 (file)
index 0000000..80e5e19
--- /dev/null
@@ -0,0 +1,45 @@
+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: iw_cxgb4: set correct FetchBurstMax for QPs
+
+From: Steve Wise <swise@opengridcomputing.com>
+
+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>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/infiniband/hw/cxgb4/qp.c |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- 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 *r
+               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 *r
+               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));
index 8867256584b1210b4be2ed80f880873b4e6742d7..ebbc630ccf9220aa1a712b96a30bfcacc7c39ee7 100644 (file)
@@ -62,3 +62,4 @@ iio-health-max30100-fixed-parenthesis-around-fifo-count-check.patch
 irqdomain-avoid-activating-interrupts-more-than-once.patch
 x86-irq-make-irq-activate-operations-symmetric.patch
 firmware-fix-null-pointer-dereference-in-__fw_load_abort.patch
+iw_cxgb4-set-correct-fetchburstmax-for-qps.patch