diff options
author | Steve Wise <swise@opengridcomputing.com> | 2008-08-04 14:04:42 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-08-04 14:04:42 -0400 |
commit | 5f0f66b022ba607db0a083bf5cc13e4a4336e366 (patch) | |
tree | 9f65ea34150f6948cd1e798a430d7b9018f24b54 /drivers/infiniband/hw | |
parent | 6e86841d05f371b5b9b86ce76c02aaee83352298 (diff) |
RDMA/cxgb3: Fix QP capabilities
- Set the stag0 and fastreg capability bits only for kernel qps.
- QP_PRIV flag is no longer used, so don't set it.
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r-- | drivers/infiniband/hw/cxgb3/iwch_qp.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c index 9a3be3a9d5dc..893971612eda 100644 --- a/drivers/infiniband/hw/cxgb3/iwch_qp.c +++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c | |||
@@ -879,20 +879,13 @@ static int rdma_init(struct iwch_dev *rhp, struct iwch_qp *qhp, | |||
879 | (qhp->attr.mpa_attr.xmit_marker_enabled << 1) | | 879 | (qhp->attr.mpa_attr.xmit_marker_enabled << 1) | |
880 | (qhp->attr.mpa_attr.crc_enabled << 2); | 880 | (qhp->attr.mpa_attr.crc_enabled << 2); |
881 | 881 | ||
882 | /* | 882 | init_attr.qpcaps = uP_RI_QP_RDMA_READ_ENABLE | |
883 | * XXX - The IWCM doesn't quite handle getting these | 883 | uP_RI_QP_RDMA_WRITE_ENABLE | |
884 | * attrs set before going into RTS. For now, just turn | 884 | uP_RI_QP_BIND_ENABLE; |
885 | * them on always... | 885 | if (!qhp->ibqp.uobject) |
886 | */ | 886 | init_attr.qpcaps |= uP_RI_QP_STAG0_ENABLE | |
887 | #if 0 | 887 | uP_RI_QP_FAST_REGISTER_ENABLE; |
888 | init_attr.qpcaps = qhp->attr.enableRdmaRead | | 888 | |
889 | (qhp->attr.enableRdmaWrite << 1) | | ||
890 | (qhp->attr.enableBind << 2) | | ||
891 | (qhp->attr.enable_stag0_fastreg << 3) | | ||
892 | (qhp->attr.enable_stag0_fastreg << 4); | ||
893 | #else | ||
894 | init_attr.qpcaps = 0x1f; | ||
895 | #endif | ||
896 | init_attr.tcp_emss = qhp->ep->emss; | 889 | init_attr.tcp_emss = qhp->ep->emss; |
897 | init_attr.ord = qhp->attr.max_ord; | 890 | init_attr.ord = qhp->attr.max_ord; |
898 | init_attr.ird = qhp->attr.max_ird; | 891 | init_attr.ird = qhp->attr.max_ird; |
@@ -900,8 +893,6 @@ static int rdma_init(struct iwch_dev *rhp, struct iwch_qp *qhp, | |||
900 | init_attr.qp_dma_size = (1UL << qhp->wq.size_log2); | 893 | init_attr.qp_dma_size = (1UL << qhp->wq.size_log2); |
901 | init_attr.rqe_count = iwch_rqes_posted(qhp); | 894 | init_attr.rqe_count = iwch_rqes_posted(qhp); |
902 | init_attr.flags = qhp->attr.mpa_attr.initiator ? MPA_INITIATOR : 0; | 895 | init_attr.flags = qhp->attr.mpa_attr.initiator ? MPA_INITIATOR : 0; |
903 | if (!qhp->ibqp.uobject) | ||
904 | init_attr.flags |= PRIV_QP; | ||
905 | if (peer2peer) { | 896 | if (peer2peer) { |
906 | init_attr.rtr_type = RTR_READ; | 897 | init_attr.rtr_type = RTR_READ; |
907 | if (init_attr.ord == 0 && qhp->attr.mpa_attr.initiator) | 898 | if (init_attr.ord == 0 && qhp->attr.mpa_attr.initiator) |