aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSagi Grimberg <sagig@mellanox.com>2014-03-05 12:43:39 -0500
committerRoland Dreier <roland@purestorage.com>2014-03-18 01:33:57 -0400
commit7306b8fad467c4c3c1e3fc68b237427cac1533a7 (patch)
tree532d8d92af5d4f58227b339642dbce93f41cc8ac
parentdb523b8de13545488b6ff6c952b4527596f3c16a (diff)
IB/iser: Avoid FRWR notation, use fastreg instead
FRWR stands for "fast registration work request". We want to avoid calling the fastreg pool with that name, instead we name it fastreg which stands for "fast registration". This pool will include more elements in the future, so it is a good idea to generalize the name. Signed-off-by: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Alex Tabachnik <alext@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.h20
-rw-r--r--drivers/infiniband/ulp/iser/iser_memory.c28
-rw-r--r--drivers/infiniband/ulp/iser/iser_verbs.c84
3 files changed, 67 insertions, 65 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.h b/drivers/infiniband/ulp/iser/iscsi_iser.h
index e1a01c6e6e12..ca161dfeee48 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.h
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.h
@@ -138,7 +138,7 @@
138#define ISER_WSV 0x08 138#define ISER_WSV 0x08
139#define ISER_RSV 0x04 139#define ISER_RSV 0x04
140 140
141#define ISER_FRWR_LI_WRID 0xffffffffffffffffULL 141#define ISER_FASTREG_LI_WRID 0xffffffffffffffffULL
142 142
143struct iser_hdr { 143struct iser_hdr {
144 u8 flags; 144 u8 flags;
@@ -312,6 +312,8 @@ struct iser_conn {
312 unsigned int rx_desc_head; 312 unsigned int rx_desc_head;
313 struct iser_rx_desc *rx_descs; 313 struct iser_rx_desc *rx_descs;
314 struct ib_recv_wr rx_wr[ISER_MIN_POSTED_RX]; 314 struct ib_recv_wr rx_wr[ISER_MIN_POSTED_RX];
315
316 /* Connection memory registration pool */
315 union { 317 union {
316 struct { 318 struct {
317 struct ib_fmr_pool *pool; /* pool of IB FMRs */ 319 struct ib_fmr_pool *pool; /* pool of IB FMRs */
@@ -321,8 +323,8 @@ struct iser_conn {
321 struct { 323 struct {
322 struct list_head pool; 324 struct list_head pool;
323 int pool_size; 325 int pool_size;
324 } frwr; 326 } fastreg;
325 } fastreg; 327 };
326}; 328};
327 329
328struct iscsi_iser_conn { 330struct iscsi_iser_conn {
@@ -408,8 +410,8 @@ void iser_finalize_rdma_unaligned_sg(struct iscsi_iser_task *task,
408 410
409int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *task, 411int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *task,
410 enum iser_data_dir cmd_dir); 412 enum iser_data_dir cmd_dir);
411int iser_reg_rdma_mem_frwr(struct iscsi_iser_task *task, 413int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *task,
412 enum iser_data_dir cmd_dir); 414 enum iser_data_dir cmd_dir);
413 415
414int iser_connect(struct iser_conn *ib_conn, 416int iser_connect(struct iser_conn *ib_conn,
415 struct sockaddr_in *src_addr, 417 struct sockaddr_in *src_addr,
@@ -422,8 +424,8 @@ int iser_reg_page_vec(struct iser_conn *ib_conn,
422 424
423void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task, 425void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task,
424 enum iser_data_dir cmd_dir); 426 enum iser_data_dir cmd_dir);
425void iser_unreg_mem_frwr(struct iscsi_iser_task *iser_task, 427void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task,
426 enum iser_data_dir cmd_dir); 428 enum iser_data_dir cmd_dir);
427 429
428int iser_post_recvl(struct iser_conn *ib_conn); 430int iser_post_recvl(struct iser_conn *ib_conn);
429int iser_post_recvm(struct iser_conn *ib_conn, int count); 431int iser_post_recvm(struct iser_conn *ib_conn, int count);
@@ -440,6 +442,6 @@ int iser_initialize_task_headers(struct iscsi_task *task,
440int iser_alloc_rx_descriptors(struct iser_conn *ib_conn, struct iscsi_session *session); 442int iser_alloc_rx_descriptors(struct iser_conn *ib_conn, struct iscsi_session *session);
441int iser_create_fmr_pool(struct iser_conn *ib_conn, unsigned cmds_max); 443int iser_create_fmr_pool(struct iser_conn *ib_conn, unsigned cmds_max);
442void iser_free_fmr_pool(struct iser_conn *ib_conn); 444void iser_free_fmr_pool(struct iser_conn *ib_conn);
443int iser_create_frwr_pool(struct iser_conn *ib_conn, unsigned cmds_max); 445int iser_create_fastreg_pool(struct iser_conn *ib_conn, unsigned cmds_max);
444void iser_free_frwr_pool(struct iser_conn *ib_conn); 446void iser_free_fastreg_pool(struct iser_conn *ib_conn);
445#endif 447#endif
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
index f7701795cef2..6e9b7bcbc562 100644
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@ -422,8 +422,8 @@ int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *iser_task,
422 (unsigned long)regd_buf->reg.va, 422 (unsigned long)regd_buf->reg.va,
423 (unsigned long)regd_buf->reg.len); 423 (unsigned long)regd_buf->reg.len);
424 } else { /* use FMR for multiple dma entries */ 424 } else { /* use FMR for multiple dma entries */
425 iser_page_vec_build(mem, ib_conn->fastreg.fmr.page_vec, ibdev); 425 iser_page_vec_build(mem, ib_conn->fmr.page_vec, ibdev);
426 err = iser_reg_page_vec(ib_conn, ib_conn->fastreg.fmr.page_vec, 426 err = iser_reg_page_vec(ib_conn, ib_conn->fmr.page_vec,
427 &regd_buf->reg); 427 &regd_buf->reg);
428 if (err && err != -EAGAIN) { 428 if (err && err != -EAGAIN) {
429 iser_data_buf_dump(mem, ibdev); 429 iser_data_buf_dump(mem, ibdev);
@@ -431,12 +431,12 @@ int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *iser_task,
431 mem->dma_nents, 431 mem->dma_nents,
432 ntoh24(iser_task->desc.iscsi_header.dlength)); 432 ntoh24(iser_task->desc.iscsi_header.dlength));
433 iser_err("page_vec: data_size = 0x%x, length = %d, offset = 0x%x\n", 433 iser_err("page_vec: data_size = 0x%x, length = %d, offset = 0x%x\n",
434 ib_conn->fastreg.fmr.page_vec->data_size, 434 ib_conn->fmr.page_vec->data_size,
435 ib_conn->fastreg.fmr.page_vec->length, 435 ib_conn->fmr.page_vec->length,
436 ib_conn->fastreg.fmr.page_vec->offset); 436 ib_conn->fmr.page_vec->offset);
437 for (i = 0; i < ib_conn->fastreg.fmr.page_vec->length; i++) 437 for (i = 0; i < ib_conn->fmr.page_vec->length; i++)
438 iser_err("page_vec[%d] = 0x%llx\n", i, 438 iser_err("page_vec[%d] = 0x%llx\n", i,
439 (unsigned long long) ib_conn->fastreg.fmr.page_vec->pages[i]); 439 (unsigned long long) ib_conn->fmr.page_vec->pages[i]);
440 } 440 }
441 if (err) 441 if (err)
442 return err; 442 return err;
@@ -457,7 +457,7 @@ static int iser_fast_reg_mr(struct fast_reg_descriptor *desc,
457 457
458 if (!desc->valid) { 458 if (!desc->valid) {
459 memset(&inv_wr, 0, sizeof(inv_wr)); 459 memset(&inv_wr, 0, sizeof(inv_wr));
460 inv_wr.wr_id = ISER_FRWR_LI_WRID; 460 inv_wr.wr_id = ISER_FASTREG_LI_WRID;
461 inv_wr.opcode = IB_WR_LOCAL_INV; 461 inv_wr.opcode = IB_WR_LOCAL_INV;
462 inv_wr.ex.invalidate_rkey = desc->data_mr->rkey; 462 inv_wr.ex.invalidate_rkey = desc->data_mr->rkey;
463 wr = &inv_wr; 463 wr = &inv_wr;
@@ -468,7 +468,7 @@ static int iser_fast_reg_mr(struct fast_reg_descriptor *desc,
468 468
469 /* Prepare FASTREG WR */ 469 /* Prepare FASTREG WR */
470 memset(&fastreg_wr, 0, sizeof(fastreg_wr)); 470 memset(&fastreg_wr, 0, sizeof(fastreg_wr));
471 fastreg_wr.wr_id = ISER_FRWR_LI_WRID; 471 fastreg_wr.wr_id = ISER_FASTREG_LI_WRID;
472 fastreg_wr.opcode = IB_WR_FAST_REG_MR; 472 fastreg_wr.opcode = IB_WR_FAST_REG_MR;
473 fastreg_wr.wr.fast_reg.iova_start = desc->data_frpl->page_list[0] + offset; 473 fastreg_wr.wr.fast_reg.iova_start = desc->data_frpl->page_list[0] + offset;
474 fastreg_wr.wr.fast_reg.page_list = desc->data_frpl; 474 fastreg_wr.wr.fast_reg.page_list = desc->data_frpl;
@@ -503,13 +503,13 @@ static int iser_fast_reg_mr(struct fast_reg_descriptor *desc,
503} 503}
504 504
505/** 505/**
506 * iser_reg_rdma_mem_frwr - Registers memory intended for RDMA, 506 * iser_reg_rdma_mem_fastreg - Registers memory intended for RDMA,
507 * using Fast Registration WR (if possible) obtaining rkey and va 507 * using Fast Registration WR (if possible) obtaining rkey and va
508 * 508 *
509 * returns 0 on success, errno code on failure 509 * returns 0 on success, errno code on failure
510 */ 510 */
511int iser_reg_rdma_mem_frwr(struct iscsi_iser_task *iser_task, 511int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *iser_task,
512 enum iser_data_dir cmd_dir) 512 enum iser_data_dir cmd_dir)
513{ 513{
514 struct iser_conn *ib_conn = iser_task->iser_conn->ib_conn; 514 struct iser_conn *ib_conn = iser_task->iser_conn->ib_conn;
515 struct iser_device *device = ib_conn->device; 515 struct iser_device *device = ib_conn->device;
@@ -544,7 +544,7 @@ int iser_reg_rdma_mem_frwr(struct iscsi_iser_task *iser_task,
544 regd_buf->reg.is_mr = 0; 544 regd_buf->reg.is_mr = 0;
545 } else { 545 } else {
546 spin_lock_irqsave(&ib_conn->lock, flags); 546 spin_lock_irqsave(&ib_conn->lock, flags);
547 desc = list_first_entry(&ib_conn->fastreg.frwr.pool, 547 desc = list_first_entry(&ib_conn->fastreg.pool,
548 struct fast_reg_descriptor, list); 548 struct fast_reg_descriptor, list);
549 list_del(&desc->list); 549 list_del(&desc->list);
550 spin_unlock_irqrestore(&ib_conn->lock, flags); 550 spin_unlock_irqrestore(&ib_conn->lock, flags);
@@ -567,7 +567,7 @@ int iser_reg_rdma_mem_frwr(struct iscsi_iser_task *iser_task,
567 return 0; 567 return 0;
568err_reg: 568err_reg:
569 spin_lock_irqsave(&ib_conn->lock, flags); 569 spin_lock_irqsave(&ib_conn->lock, flags);
570 list_add_tail(&desc->list, &ib_conn->fastreg.frwr.pool); 570 list_add_tail(&desc->list, &ib_conn->fastreg.pool);
571 spin_unlock_irqrestore(&ib_conn->lock, flags); 571 spin_unlock_irqrestore(&ib_conn->lock, flags);
572 return err; 572 return err;
573} 573}
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index 7bdb811ad5b1..dc5a0b49cfbe 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -94,13 +94,13 @@ static int iser_create_device_ib_res(struct iser_device *device)
94 device->iser_unreg_rdma_mem = iser_unreg_mem_fmr; 94 device->iser_unreg_rdma_mem = iser_unreg_mem_fmr;
95 } else 95 } else
96 if (dev_attr->device_cap_flags & IB_DEVICE_MEM_MGT_EXTENSIONS) { 96 if (dev_attr->device_cap_flags & IB_DEVICE_MEM_MGT_EXTENSIONS) {
97 iser_info("FRWR supported, using FRWR for registration\n"); 97 iser_info("FastReg supported, using FastReg for registration\n");
98 device->iser_alloc_rdma_reg_res = iser_create_frwr_pool; 98 device->iser_alloc_rdma_reg_res = iser_create_fastreg_pool;
99 device->iser_free_rdma_reg_res = iser_free_frwr_pool; 99 device->iser_free_rdma_reg_res = iser_free_fastreg_pool;
100 device->iser_reg_rdma_mem = iser_reg_rdma_mem_frwr; 100 device->iser_reg_rdma_mem = iser_reg_rdma_mem_fastreg;
101 device->iser_unreg_rdma_mem = iser_unreg_mem_frwr; 101 device->iser_unreg_rdma_mem = iser_unreg_mem_fastreg;
102 } else { 102 } else {
103 iser_err("IB device does not support FMRs nor FRWRs, can't register memory\n"); 103 iser_err("IB device does not support FMRs nor FastRegs, can't register memory\n");
104 goto dev_attr_err; 104 goto dev_attr_err;
105 } 105 }
106 106
@@ -221,13 +221,13 @@ int iser_create_fmr_pool(struct iser_conn *ib_conn, unsigned cmds_max)
221 struct ib_fmr_pool_param params; 221 struct ib_fmr_pool_param params;
222 int ret = -ENOMEM; 222 int ret = -ENOMEM;
223 223
224 ib_conn->fastreg.fmr.page_vec = kmalloc(sizeof(struct iser_page_vec) + 224 ib_conn->fmr.page_vec = kmalloc(sizeof(*ib_conn->fmr.page_vec) +
225 (sizeof(u64)*(ISCSI_ISER_SG_TABLESIZE + 1)), 225 (sizeof(u64)*(ISCSI_ISER_SG_TABLESIZE + 1)),
226 GFP_KERNEL); 226 GFP_KERNEL);
227 if (!ib_conn->fastreg.fmr.page_vec) 227 if (!ib_conn->fmr.page_vec)
228 return ret; 228 return ret;
229 229
230 ib_conn->fastreg.fmr.page_vec->pages = (u64 *)(ib_conn->fastreg.fmr.page_vec + 1); 230 ib_conn->fmr.page_vec->pages = (u64 *)(ib_conn->fmr.page_vec + 1);
231 231
232 params.page_shift = SHIFT_4K; 232 params.page_shift = SHIFT_4K;
233 /* when the first/last SG element are not start/end * 233 /* when the first/last SG element are not start/end *
@@ -243,16 +243,16 @@ int iser_create_fmr_pool(struct iser_conn *ib_conn, unsigned cmds_max)
243 IB_ACCESS_REMOTE_WRITE | 243 IB_ACCESS_REMOTE_WRITE |
244 IB_ACCESS_REMOTE_READ); 244 IB_ACCESS_REMOTE_READ);
245 245
246 ib_conn->fastreg.fmr.pool = ib_create_fmr_pool(device->pd, &params); 246 ib_conn->fmr.pool = ib_create_fmr_pool(device->pd, &params);
247 if (!IS_ERR(ib_conn->fastreg.fmr.pool)) 247 if (!IS_ERR(ib_conn->fmr.pool))
248 return 0; 248 return 0;
249 249
250 /* no FMR => no need for page_vec */ 250 /* no FMR => no need for page_vec */
251 kfree(ib_conn->fastreg.fmr.page_vec); 251 kfree(ib_conn->fmr.page_vec);
252 ib_conn->fastreg.fmr.page_vec = NULL; 252 ib_conn->fmr.page_vec = NULL;
253 253
254 ret = PTR_ERR(ib_conn->fastreg.fmr.pool); 254 ret = PTR_ERR(ib_conn->fmr.pool);
255 ib_conn->fastreg.fmr.pool = NULL; 255 ib_conn->fmr.pool = NULL;
256 if (ret != -ENOSYS) { 256 if (ret != -ENOSYS) {
257 iser_err("FMR allocation failed, err %d\n", ret); 257 iser_err("FMR allocation failed, err %d\n", ret);
258 return ret; 258 return ret;
@@ -268,30 +268,30 @@ int iser_create_fmr_pool(struct iser_conn *ib_conn, unsigned cmds_max)
268void iser_free_fmr_pool(struct iser_conn *ib_conn) 268void iser_free_fmr_pool(struct iser_conn *ib_conn)
269{ 269{
270 iser_info("freeing conn %p fmr pool %p\n", 270 iser_info("freeing conn %p fmr pool %p\n",
271 ib_conn, ib_conn->fastreg.fmr.pool); 271 ib_conn, ib_conn->fmr.pool);
272 272
273 if (ib_conn->fastreg.fmr.pool != NULL) 273 if (ib_conn->fmr.pool != NULL)
274 ib_destroy_fmr_pool(ib_conn->fastreg.fmr.pool); 274 ib_destroy_fmr_pool(ib_conn->fmr.pool);
275 275
276 ib_conn->fastreg.fmr.pool = NULL; 276 ib_conn->fmr.pool = NULL;
277 277
278 kfree(ib_conn->fastreg.fmr.page_vec); 278 kfree(ib_conn->fmr.page_vec);
279 ib_conn->fastreg.fmr.page_vec = NULL; 279 ib_conn->fmr.page_vec = NULL;
280} 280}
281 281
282/** 282/**
283 * iser_create_frwr_pool - Creates pool of fast_reg descriptors 283 * iser_create_fastreg_pool - Creates pool of fast_reg descriptors
284 * for fast registration work requests. 284 * for fast registration work requests.
285 * returns 0 on success, or errno code on failure 285 * returns 0 on success, or errno code on failure
286 */ 286 */
287int iser_create_frwr_pool(struct iser_conn *ib_conn, unsigned cmds_max) 287int iser_create_fastreg_pool(struct iser_conn *ib_conn, unsigned cmds_max)
288{ 288{
289 struct iser_device *device = ib_conn->device; 289 struct iser_device *device = ib_conn->device;
290 struct fast_reg_descriptor *desc; 290 struct fast_reg_descriptor *desc;
291 int i, ret; 291 int i, ret;
292 292
293 INIT_LIST_HEAD(&ib_conn->fastreg.frwr.pool); 293 INIT_LIST_HEAD(&ib_conn->fastreg.pool);
294 ib_conn->fastreg.frwr.pool_size = 0; 294 ib_conn->fastreg.pool_size = 0;
295 for (i = 0; i < cmds_max; i++) { 295 for (i = 0; i < cmds_max; i++) {
296 desc = kmalloc(sizeof(*desc), GFP_KERNEL); 296 desc = kmalloc(sizeof(*desc), GFP_KERNEL);
297 if (!desc) { 297 if (!desc) {
@@ -316,8 +316,8 @@ int iser_create_frwr_pool(struct iser_conn *ib_conn, unsigned cmds_max)
316 goto fast_reg_mr_failure; 316 goto fast_reg_mr_failure;
317 } 317 }
318 desc->valid = true; 318 desc->valid = true;
319 list_add_tail(&desc->list, &ib_conn->fastreg.frwr.pool); 319 list_add_tail(&desc->list, &ib_conn->fastreg.pool);
320 ib_conn->fastreg.frwr.pool_size++; 320 ib_conn->fastreg.pool_size++;
321 } 321 }
322 322
323 return 0; 323 return 0;
@@ -327,24 +327,24 @@ fast_reg_mr_failure:
327fast_reg_page_failure: 327fast_reg_page_failure:
328 kfree(desc); 328 kfree(desc);
329err: 329err:
330 iser_free_frwr_pool(ib_conn); 330 iser_free_fastreg_pool(ib_conn);
331 return ret; 331 return ret;
332} 332}
333 333
334/** 334/**
335 * iser_free_frwr_pool - releases the pool of fast_reg descriptors 335 * iser_free_fastreg_pool - releases the pool of fast_reg descriptors
336 */ 336 */
337void iser_free_frwr_pool(struct iser_conn *ib_conn) 337void iser_free_fastreg_pool(struct iser_conn *ib_conn)
338{ 338{
339 struct fast_reg_descriptor *desc, *tmp; 339 struct fast_reg_descriptor *desc, *tmp;
340 int i = 0; 340 int i = 0;
341 341
342 if (list_empty(&ib_conn->fastreg.frwr.pool)) 342 if (list_empty(&ib_conn->fastreg.pool))
343 return; 343 return;
344 344
345 iser_info("freeing conn %p frwr pool\n", ib_conn); 345 iser_info("freeing conn %p fr pool\n", ib_conn);
346 346
347 list_for_each_entry_safe(desc, tmp, &ib_conn->fastreg.frwr.pool, list) { 347 list_for_each_entry_safe(desc, tmp, &ib_conn->fastreg.pool, list) {
348 list_del(&desc->list); 348 list_del(&desc->list);
349 ib_free_fast_reg_page_list(desc->data_frpl); 349 ib_free_fast_reg_page_list(desc->data_frpl);
350 ib_dereg_mr(desc->data_mr); 350 ib_dereg_mr(desc->data_mr);
@@ -352,9 +352,9 @@ void iser_free_frwr_pool(struct iser_conn *ib_conn)
352 ++i; 352 ++i;
353 } 353 }
354 354
355 if (i < ib_conn->fastreg.frwr.pool_size) 355 if (i < ib_conn->fastreg.pool_size)
356 iser_warn("pool still has %d regions registered\n", 356 iser_warn("pool still has %d regions registered\n",
357 ib_conn->fastreg.frwr.pool_size - i); 357 ib_conn->fastreg.pool_size - i);
358} 358}
359 359
360/** 360/**
@@ -801,7 +801,7 @@ int iser_reg_page_vec(struct iser_conn *ib_conn,
801 page_list = page_vec->pages; 801 page_list = page_vec->pages;
802 io_addr = page_list[0]; 802 io_addr = page_list[0];
803 803
804 mem = ib_fmr_pool_map_phys(ib_conn->fastreg.fmr.pool, 804 mem = ib_fmr_pool_map_phys(ib_conn->fmr.pool,
805 page_list, 805 page_list,
806 page_vec->length, 806 page_vec->length,
807 io_addr); 807 io_addr);
@@ -855,8 +855,8 @@ void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task,
855 reg->mem_h = NULL; 855 reg->mem_h = NULL;
856} 856}
857 857
858void iser_unreg_mem_frwr(struct iscsi_iser_task *iser_task, 858void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task,
859 enum iser_data_dir cmd_dir) 859 enum iser_data_dir cmd_dir)
860{ 860{
861 struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg; 861 struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg;
862 struct iser_conn *ib_conn = iser_task->iser_conn->ib_conn; 862 struct iser_conn *ib_conn = iser_task->iser_conn->ib_conn;
@@ -868,7 +868,7 @@ void iser_unreg_mem_frwr(struct iscsi_iser_task *iser_task,
868 reg->mem_h = NULL; 868 reg->mem_h = NULL;
869 reg->is_mr = 0; 869 reg->is_mr = 0;
870 spin_lock_bh(&ib_conn->lock); 870 spin_lock_bh(&ib_conn->lock);
871 list_add_tail(&desc->list, &ib_conn->fastreg.frwr.pool); 871 list_add_tail(&desc->list, &ib_conn->fastreg.pool);
872 spin_unlock_bh(&ib_conn->lock); 872 spin_unlock_bh(&ib_conn->lock);
873} 873}
874 874
@@ -999,7 +999,7 @@ static int iser_drain_tx_cq(struct iser_device *device, int cq_index)
999 } else { 999 } else {
1000 iser_err("tx id %llx status %d vend_err %x\n", 1000 iser_err("tx id %llx status %d vend_err %x\n",
1001 wc.wr_id, wc.status, wc.vendor_err); 1001 wc.wr_id, wc.status, wc.vendor_err);
1002 if (wc.wr_id != ISER_FRWR_LI_WRID) { 1002 if (wc.wr_id != ISER_FASTREG_LI_WRID) {
1003 atomic_dec(&ib_conn->post_send_buf_count); 1003 atomic_dec(&ib_conn->post_send_buf_count);
1004 iser_handle_comp_error(tx_desc, ib_conn); 1004 iser_handle_comp_error(tx_desc, ib_conn);
1005 } 1005 }