summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/cxgb4/device.c
diff options
context:
space:
mode:
authorSteve Wise <swise@opengridcomputing.com>2014-07-08 17:20:35 +0200
committerRoland Dreier <roland@purestorage.com>2014-07-09 01:56:55 +0200
commit6b54d54dea82ae214e4a45a503c4ef755a8ecee8 (patch)
tree825467589e899c43020f4295730742d8cbc9bbad /drivers/infiniband/hw/cxgb4/device.c
parentRDMA/cxgb4: Clean up connection on ARP error (diff)
downloadlinux-6b54d54dea82ae214e4a45a503c4ef755a8ecee8.tar.xz
linux-6b54d54dea82ae214e4a45a503c4ef755a8ecee8.zip
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 <swise@opengridcomputing.com> Cc: <stable@vger.kernel.org> # v3.15 Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/cxgb4/device.c')
-rw-r--r--drivers/infiniband/hw/cxgb4/device.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb4/device.c b/drivers/infiniband/hw/cxgb4/device.c
index dd93aadc996e..16b75de4b2de 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);