Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

iser-target: Remove ib_get_dma_mr calls

The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>

authored by

Jason Gunthorpe and committed by
Doug Ledford
34efc7df 256b7ad2

+11 -23
+11 -22
drivers/infiniband/ulp/isert/ib_isert.c
··· 235 235 rx_sg = &rx_desc->rx_sg; 236 236 rx_sg->addr = rx_desc->dma_addr; 237 237 rx_sg->length = ISER_RX_PAYLOAD_SIZE; 238 - rx_sg->lkey = device->mr->lkey; 238 + rx_sg->lkey = device->pd->local_dma_lkey; 239 239 } 240 240 241 241 isert_conn->rx_desc_head = 0; ··· 385 385 goto out_cq; 386 386 } 387 387 388 - device->mr = ib_get_dma_mr(device->pd, IB_ACCESS_LOCAL_WRITE); 389 - if (IS_ERR(device->mr)) { 390 - ret = PTR_ERR(device->mr); 391 - isert_err("failed to create dma mr, device %p, ret=%d\n", 392 - device, ret); 393 - goto out_mr; 394 - } 395 - 396 388 /* Check signature cap */ 397 389 device->pi_capable = dev_attr->device_cap_flags & 398 390 IB_DEVICE_SIGNATURE_HANDOVER ? true : false; 399 391 400 392 return 0; 401 393 402 - out_mr: 403 - ib_dealloc_pd(device->pd); 404 394 out_cq: 405 395 isert_free_comps(device); 406 396 return ret; ··· 401 411 { 402 412 isert_info("device %p\n", device); 403 413 404 - ib_dereg_mr(device->mr); 405 414 ib_dealloc_pd(device->pd); 406 415 isert_free_comps(device); 407 416 } ··· 1079 1090 tx_desc->num_sge = 1; 1080 1091 tx_desc->isert_cmd = isert_cmd; 1081 1092 1082 - if (tx_desc->tx_sg[0].lkey != device->mr->lkey) { 1083 - tx_desc->tx_sg[0].lkey = device->mr->lkey; 1093 + if (tx_desc->tx_sg[0].lkey != device->pd->local_dma_lkey) { 1094 + tx_desc->tx_sg[0].lkey = device->pd->local_dma_lkey; 1084 1095 isert_dbg("tx_desc %p lkey mismatch, fixing\n", tx_desc); 1085 1096 } 1086 1097 } ··· 1103 1114 tx_desc->dma_addr = dma_addr; 1104 1115 tx_desc->tx_sg[0].addr = tx_desc->dma_addr; 1105 1116 tx_desc->tx_sg[0].length = ISER_HEADERS_LEN; 1106 - tx_desc->tx_sg[0].lkey = device->mr->lkey; 1117 + tx_desc->tx_sg[0].lkey = device->pd->local_dma_lkey; 1107 1118 1108 1119 isert_dbg("Setup tx_sg[0].addr: 0x%llx length: %u lkey: 0x%x\n", 1109 1120 tx_desc->tx_sg[0].addr, tx_desc->tx_sg[0].length, ··· 1136 1147 memset(&sge, 0, sizeof(struct ib_sge)); 1137 1148 sge.addr = isert_conn->login_req_dma; 1138 1149 sge.length = ISER_RX_LOGIN_SIZE; 1139 - sge.lkey = isert_conn->device->mr->lkey; 1150 + sge.lkey = isert_conn->device->pd->local_dma_lkey; 1140 1151 1141 1152 isert_dbg("Setup sge: addr: %llx length: %d 0x%08x\n", 1142 1153 sge.addr, sge.length, sge.lkey); ··· 1186 1197 1187 1198 tx_dsg->addr = isert_conn->login_rsp_dma; 1188 1199 tx_dsg->length = length; 1189 - tx_dsg->lkey = isert_conn->device->mr->lkey; 1200 + tx_dsg->lkey = isert_conn->device->pd->local_dma_lkey; 1190 1201 tx_desc->num_sge = 2; 1191 1202 } 1192 1203 if (!login->login_failed) { ··· 2203 2214 isert_cmd->pdu_buf_len = pdu_len; 2204 2215 tx_dsg->addr = isert_cmd->pdu_buf_dma; 2205 2216 tx_dsg->length = pdu_len; 2206 - tx_dsg->lkey = device->mr->lkey; 2217 + tx_dsg->lkey = device->pd->local_dma_lkey; 2207 2218 isert_cmd->tx_desc.num_sge = 2; 2208 2219 } 2209 2220 ··· 2331 2342 isert_cmd->pdu_buf_len = ISCSI_HDR_LEN; 2332 2343 tx_dsg->addr = isert_cmd->pdu_buf_dma; 2333 2344 tx_dsg->length = ISCSI_HDR_LEN; 2334 - tx_dsg->lkey = device->mr->lkey; 2345 + tx_dsg->lkey = device->pd->local_dma_lkey; 2335 2346 isert_cmd->tx_desc.num_sge = 2; 2336 2347 2337 2348 isert_init_send_wr(isert_conn, isert_cmd, send_wr); ··· 2372 2383 isert_cmd->pdu_buf_len = txt_rsp_len; 2373 2384 tx_dsg->addr = isert_cmd->pdu_buf_dma; 2374 2385 tx_dsg->length = txt_rsp_len; 2375 - tx_dsg->lkey = device->mr->lkey; 2386 + tx_dsg->lkey = device->pd->local_dma_lkey; 2376 2387 isert_cmd->tx_desc.num_sge = 2; 2377 2388 } 2378 2389 isert_init_send_wr(isert_conn, isert_cmd, send_wr); ··· 2413 2424 ib_sge->addr = ib_sg_dma_address(ib_dev, tmp_sg) + page_off; 2414 2425 ib_sge->length = min_t(u32, data_left, 2415 2426 ib_sg_dma_len(ib_dev, tmp_sg) - page_off); 2416 - ib_sge->lkey = device->mr->lkey; 2427 + ib_sge->lkey = device->pd->local_dma_lkey; 2417 2428 2418 2429 isert_dbg("RDMA ib_sge: addr: 0x%llx length: %u lkey: %x\n", 2419 2430 ib_sge->addr, ib_sge->length, ib_sge->lkey); ··· 2587 2598 u32 page_off; 2588 2599 2589 2600 if (mem->dma_nents == 1) { 2590 - sge->lkey = device->mr->lkey; 2601 + sge->lkey = device->pd->local_dma_lkey; 2591 2602 sge->addr = ib_sg_dma_address(ib_dev, &mem->sg[0]); 2592 2603 sge->length = ib_sg_dma_len(ib_dev, &mem->sg[0]); 2593 2604 isert_dbg("sge: addr: 0x%llx length: %u lkey: %x\n",
-1
drivers/infiniband/ulp/isert/ib_isert.h
··· 209 209 int refcount; 210 210 struct ib_device *ib_device; 211 211 struct ib_pd *pd; 212 - struct ib_mr *mr; 213 212 struct isert_comp *comps; 214 213 int comps_used; 215 214 struct list_head dev_node;