net/smc: convert static link ID to dynamic references
[linux-2.6-microblaze.git] / net / smc / smc_tx.c
index 9f1ade8..d74bfe6 100644 (file)
@@ -269,19 +269,18 @@ static int smc_tx_rdma_write(struct smc_connection *conn, int peer_rmbe_offset,
                             int num_sges, struct ib_rdma_wr *rdma_wr)
 {
        struct smc_link_group *lgr = conn->lgr;
-       struct smc_link *link;
+       struct smc_link *link = conn->lnk;
        int rc;
 
-       link = &lgr->lnk[SMC_SINGLE_LINK];
        rdma_wr->wr.wr_id = smc_wr_tx_get_next_wr_id(link);
        rdma_wr->wr.num_sge = num_sges;
        rdma_wr->remote_addr =
-               lgr->rtokens[conn->rtoken_idx][SMC_SINGLE_LINK].dma_addr +
+               lgr->rtokens[conn->rtoken_idx][link->link_idx].dma_addr +
                /* RMBE within RMB */
                conn->tx_off +
                /* offset within RMBE */
                peer_rmbe_offset;
-       rdma_wr->rkey = lgr->rtokens[conn->rtoken_idx][SMC_SINGLE_LINK].rkey;
+       rdma_wr->rkey = lgr->rtokens[conn->rtoken_idx][link->link_idx].rkey;
        rc = ib_post_send(link->roce_qp, &rdma_wr->wr, NULL);
        if (rc)
                smc_lgr_terminate_sched(lgr);
@@ -310,8 +309,10 @@ static int smcr_tx_rdma_writes(struct smc_connection *conn, size_t len,
                               size_t dst_off, size_t dst_len,
                               struct smc_rdma_wr *wr_rdma_buf)
 {
+       struct smc_link *link = conn->lnk;
+
        dma_addr_t dma_addr =
-               sg_dma_address(conn->sndbuf_desc->sgt[SMC_SINGLE_LINK].sgl);
+               sg_dma_address(conn->sndbuf_desc->sgt[link->link_idx].sgl);
        int src_len_sum = src_len, dst_len_sum = dst_len;
        int sent_count = src_off;
        int srcchunk, dstchunk;
@@ -507,7 +508,7 @@ static int smcr_tx_sndbuf_nonempty(struct smc_connection *conn)
        if (!pflags->urg_data_present) {
                rc = smc_tx_rdma_writes(conn, wr_rdma_buf);
                if (rc) {
-                       smc_wr_tx_put_slot(&conn->lgr->lnk[SMC_SINGLE_LINK],
+                       smc_wr_tx_put_slot(conn->lnk,
                                           (struct smc_wr_tx_pend_priv *)pend);
                        goto out_unlock;
                }