diff options
author | Steve Wise <swise@opengridcomputing.com> | 2010-09-10 12:15:25 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2010-09-28 13:46:34 -0400 |
commit | aadc4df3087a33ca7fc37f91a024e7b7efdafa75 (patch) | |
tree | 41e5da5350ce779d1f6058329166ab9da0cc4c61 /drivers/infiniband/hw/cxgb4/qp.c | |
parent | 9e8d1fa3420f489da8a5da47c026511aa71fa50b (diff) |
RDMA/cxgb4: Centralize the wait logic
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/cxgb4/qp.c')
-rw-r--r-- | drivers/infiniband/hw/cxgb4/qp.c | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c index 1199d1b9baf6..40187e26d2b9 100644 --- a/drivers/infiniband/hw/cxgb4/qp.c +++ b/drivers/infiniband/hw/cxgb4/qp.c | |||
@@ -198,14 +198,7 @@ static int create_qp(struct c4iw_rdev *rdev, struct t4_wq *wq, | |||
198 | ret = c4iw_ofld_send(rdev, skb); | 198 | ret = c4iw_ofld_send(rdev, skb); |
199 | if (ret) | 199 | if (ret) |
200 | goto err7; | 200 | goto err7; |
201 | wait_event_timeout(wr_wait.wait, wr_wait.done, C4IW_WR_TO); | 201 | ret = c4iw_wait_for_reply(rdev, &wr_wait, 0, wq->sq.qid, __func__); |
202 | if (!wr_wait.done) { | ||
203 | printk(KERN_ERR MOD "Device %s not responding!\n", | ||
204 | pci_name(rdev->lldi.pdev)); | ||
205 | rdev->flags = T4_FATAL_ERROR; | ||
206 | ret = -EIO; | ||
207 | } else | ||
208 | ret = wr_wait.ret; | ||
209 | if (ret) | 202 | if (ret) |
210 | goto err7; | 203 | goto err7; |
211 | 204 | ||
@@ -997,20 +990,8 @@ static int rdma_fini(struct c4iw_dev *rhp, struct c4iw_qp *qhp, | |||
997 | if (ret) | 990 | if (ret) |
998 | goto out; | 991 | goto out; |
999 | 992 | ||
1000 | wait_event_timeout(wr_wait.wait, wr_wait.done, C4IW_WR_TO); | 993 | ret = c4iw_wait_for_reply(&rhp->rdev, &wr_wait, qhp->ep->hwtid, |
1001 | if (!wr_wait.done) { | 994 | qhp->wq.sq.qid, __func__); |
1002 | printk(KERN_ERR MOD "Device %s not responding!\n", | ||
1003 | pci_name(rhp->rdev.lldi.pdev)); | ||
1004 | rhp->rdev.flags = T4_FATAL_ERROR; | ||
1005 | ret = -EIO; | ||
1006 | } else { | ||
1007 | ret = wr_wait.ret; | ||
1008 | if (ret) | ||
1009 | printk(KERN_WARNING MOD | ||
1010 | "%s: Abnormal close qpid %d ret %u\n", | ||
1011 | pci_name(rhp->rdev.lldi.pdev), qhp->wq.sq.qid, | ||
1012 | ret); | ||
1013 | } | ||
1014 | out: | 995 | out: |
1015 | PDBG("%s ret %d\n", __func__, ret); | 996 | PDBG("%s ret %d\n", __func__, ret); |
1016 | return ret; | 997 | return ret; |
@@ -1106,14 +1087,8 @@ static int rdma_init(struct c4iw_dev *rhp, struct c4iw_qp *qhp) | |||
1106 | if (ret) | 1087 | if (ret) |
1107 | goto out; | 1088 | goto out; |
1108 | 1089 | ||
1109 | wait_event_timeout(wr_wait.wait, wr_wait.done, C4IW_WR_TO); | 1090 | ret = c4iw_wait_for_reply(&rhp->rdev, &wr_wait, qhp->ep->hwtid, |
1110 | if (!wr_wait.done) { | 1091 | qhp->wq.sq.qid, __func__); |
1111 | printk(KERN_ERR MOD "Device %s not responding!\n", | ||
1112 | pci_name(rhp->rdev.lldi.pdev)); | ||
1113 | rhp->rdev.flags = T4_FATAL_ERROR; | ||
1114 | ret = -EIO; | ||
1115 | } else | ||
1116 | ret = wr_wait.ret; | ||
1117 | out: | 1092 | out: |
1118 | PDBG("%s ret %d\n", __func__, ret); | 1093 | PDBG("%s ret %d\n", __func__, ret); |
1119 | return ret; | 1094 | return ret; |