From: Steve Wise Date: Wed, 16 Jul 2014 14:29:16 +0000 (-0500) Subject: RDMA/cxgb4: Initialize the device status page X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=ba6750e941627cc2a67eb5dcd73b6f1e63e7b362;p=~emulex%2Fcompat-rdma_3.12.git RDMA/cxgb4: Initialize the device status page Cherry picked from Roland's for-next branch. Signed-off-by: Steve Wise --- diff --git a/linux-next-cherry-picks/0102-RDMA-cxgb4--Initialize-the-device-status-page.patch b/linux-next-cherry-picks/0102-RDMA-cxgb4--Initialize-the-device-status-page.patch new file mode 100644 index 0000000..defaec5 --- /dev/null +++ b/linux-next-cherry-picks/0102-RDMA-cxgb4--Initialize-the-device-status-page.patch @@ -0,0 +1,29 @@ +commit 6b54d54dea82ae214e4a45a503c4ef755a8ecee8 +Author: Steve Wise +Date: Tue Jul 8 10:20:35 2014 -0500 + + RDMA/cxgb4: Initialize the device status page + + The status page is mapped to user processes and allows sharing the + device state between the kernel and user processes. This state isn't + getting initialized and thus intermittently causes problems. Namely, + the user process can mistakenly think the user doorbell writes are + disabled which causes SQ work requests to never get fetched by HW. + + Fixes: 05eb23893c2c ("cxgb4/iw_cxgb4: Doorbell Drop Avoidance Bug Fixes"). + Signed-off-by: Steve Wise + Cc: # v3.15 + Signed-off-by: Roland Dreier + +diff --git a/drivers/infiniband/hw/cxgb4/device.c b/drivers/infiniband/hw/cxgb4/device.c +index dd93aad..16b75de 100644 +--- a/drivers/infiniband/hw/cxgb4/device.c ++++ b/drivers/infiniband/hw/cxgb4/device.c +@@ -696,6 +696,7 @@ static int c4iw_rdev_open(struct c4iw_rdev *rdev) + pr_err(MOD "error allocating status page\n"); + goto err4; + } ++ rdev->status_page->db_off = 0; + return 0; + err4: + c4iw_rqtpool_destroy(rdev);