]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/smc/smc_ib.c
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[linux.git] / net / smc / smc_ib.c
index e6743c008ac548259447daa0e0c207aa7f249c63..b31715505a358cd4e73d1af6c58a49ef7ef8ecbe 100644 (file)
@@ -37,24 +37,6 @@ u8 local_systemid[SMC_SYSTEMID_LEN] = SMC_LOCAL_SYSTEMID_RESET;      /* unique system
                                                                 * identifier
                                                                 */
 
-int smc_ib_get_memory_region(struct ib_pd *pd, int access_flags,
-                            struct ib_mr **mr)
-{
-       int rc;
-
-       if (*mr)
-               return 0; /* already done */
-
-       /* obtain unique key -
-        * next invocation of get_dma_mr returns a different key!
-        */
-       *mr = pd->device->get_dma_mr(pd, access_flags);
-       rc = PTR_ERR_OR_ZERO(*mr);
-       if (IS_ERR(*mr))
-               *mr = NULL;
-       return rc;
-}
-
 static int smc_ib_modify_qp_init(struct smc_link *lnk)
 {
        struct ib_qp_attr qp_attr;
@@ -80,12 +62,11 @@ static int smc_ib_modify_qp_rtr(struct smc_link *lnk)
        memset(&qp_attr, 0, sizeof(qp_attr));
        qp_attr.qp_state = IB_QPS_RTR;
        qp_attr.path_mtu = min(lnk->path_mtu, lnk->peer_mtu);
-       qp_attr.ah_attr.port_num = lnk->ibport;
-       qp_attr.ah_attr.ah_flags = IB_AH_GRH;
-       qp_attr.ah_attr.grh.hop_limit = 1;
-       memcpy(&qp_attr.ah_attr.grh.dgid, lnk->peer_gid,
-              sizeof(lnk->peer_gid));
-       memcpy(&qp_attr.ah_attr.dmac, lnk->peer_mac,
+       qp_attr.ah_attr.type = RDMA_AH_ATTR_TYPE_ROCE;
+       rdma_ah_set_port_num(&qp_attr.ah_attr, lnk->ibport);
+       rdma_ah_set_grh(&qp_attr.ah_attr, NULL, 0, 0, 1, 0);
+       rdma_ah_set_dgid_raw(&qp_attr.ah_attr, lnk->peer_gid);
+       memcpy(&qp_attr.ah_attr.roce.dmac, lnk->peer_mac,
               sizeof(lnk->peer_mac));
        qp_attr.dest_qp_num = lnk->peer_qpn;
        qp_attr.rq_psn = lnk->peer_psn; /* starting receive packet seq # */
@@ -179,8 +160,6 @@ static void smc_ib_global_event_handler(struct ib_event_handler *handler,
        u8 port_idx;
 
        smcibdev = container_of(handler, struct smc_ib_device, event_handler);
-       if (!smc_pnet_find_ib(smcibdev->ibdev->name))
-               return;
 
        switch (ibevent->event) {
        case IB_EVENT_PORT_ERR:
@@ -213,7 +192,8 @@ int smc_ib_create_protection_domain(struct smc_link *lnk)
 {
        int rc;
 
-       lnk->roce_pd = ib_alloc_pd(lnk->smcibdev->ibdev, 0);
+       lnk->roce_pd = ib_alloc_pd(lnk->smcibdev->ibdev,
+                                  IB_PD_UNSAFE_GLOBAL_RKEY);
        rc = PTR_ERR_OR_ZERO(lnk->roce_pd);
        if (IS_ERR(lnk->roce_pd))
                lnk->roce_pd = NULL;
@@ -259,7 +239,6 @@ int smc_ib_create_queue_pair(struct smc_link *lnk)
                        .max_recv_wr = SMC_WR_BUF_CNT * 3,
                        .max_send_sge = SMC_IB_MAX_SEND_SGE,
                        .max_recv_sge = 1,
-                       .max_inline_data = SMC_WR_TX_SIZE,
                },
                .sq_sig_type = IB_SIGNAL_REQ_WR,
                .qp_type = IB_QPT_RC,