sys/dev/iser/icl_iser.c
286
mtx_init(&iser_conn->ib_conn.beacon.flush_lock, "iser_flush_lock", NULL, MTX_DEF);
sys/dev/iser/icl_iser.c
287
cv_init(&iser_conn->ib_conn.beacon.flush_cv, "flush_cv");
sys/dev/iser/icl_iser.c
288
mtx_init(&iser_conn->ib_conn.lock, "iser_lock", NULL, MTX_DEF);
sys/dev/iser/icl_iser.c
306
mtx_destroy(&iser_conn->ib_conn.lock);
sys/dev/iser/icl_iser.c
307
cv_destroy(&iser_conn->ib_conn.beacon.flush_cv);
sys/dev/iser/icl_iser.c
308
mtx_destroy(&iser_conn->ib_conn.beacon.flush_lock);
sys/dev/iser/icl_iser.c
357
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/icl_iser.c
382
if (ib_conn->cma_id != NULL) {
sys/dev/iser/icl_iser.c
383
rdma_destroy_id(ib_conn->cma_id);
sys/dev/iser/icl_iser.c
384
ib_conn->cma_id = NULL;
sys/dev/iser/icl_iser.c
413
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/icl_iser.c
420
ib_conn->device = NULL;
sys/dev/iser/icl_iser.c
425
ib_conn->cma_id = rdma_create_id(&init_net, iser_cma_handler, (void *)iser_conn,
sys/dev/iser/icl_iser.c
427
if (IS_ERR(ib_conn->cma_id)) {
sys/dev/iser/icl_iser.c
428
err = -PTR_ERR(ib_conn->cma_id);
sys/dev/iser/icl_iser.c
433
err = rdma_resolve_addr(ib_conn->cma_id, from_sa, to_sa, 1000);
sys/dev/iser/icl_iser.c
462
ib_conn->cma_id = NULL;
sys/dev/iser/icl_iser.c
486
struct iser_device *device = iser_pdu->iser_conn->ib_conn.device;
sys/dev/iser/icl_iser.c
92
struct iser_device *device = iser_conn->ib_conn.device;
sys/dev/iser/icl_iser.h
256
struct ib_conn;
sys/dev/iser/icl_iser.h
433
struct ib_conn ib_conn;
sys/dev/iser/icl_iser.h
487
iser_post_send(struct ib_conn *, struct iser_tx_desc *, bool);
sys/dev/iser/icl_iser.h
490
iser_snd_completion(struct iser_tx_desc *, struct ib_conn *);
sys/dev/iser/icl_iser.h
494
struct ib_conn *);
sys/dev/iser/icl_iser.h
524
iser_create_fastreg_pool(struct ib_conn *, unsigned);
sys/dev/iser/icl_iser.h
527
iser_free_fastreg_pool(struct ib_conn *);
sys/dev/iser/iser_initiator.c
105
struct iser_device *device = iser_conn->ib_conn.device;
sys/dev/iser/iser_initiator.c
124
struct iser_device *device = iser_conn->ib_conn.device;
sys/dev/iser/iser_initiator.c
150
struct iser_device *device = iser_conn->ib_conn.device;
sys/dev/iser/iser_initiator.c
204
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_initiator.c
205
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_initiator.c
210
if (iser_create_fastreg_pool(ib_conn, cmds_max))
sys/dev/iser/iser_initiator.c
249
iser_free_fastreg_pool(ib_conn);
sys/dev/iser/iser_initiator.c
261
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_initiator.c
262
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_initiator.c
264
iser_free_fastreg_pool(ib_conn);
sys/dev/iser/iser_initiator.c
366
u8 sig_count = ++iser_conn->ib_conn.sig_count;
sys/dev/iser/iser_initiator.c
397
err = iser_post_send(&iser_conn->ib_conn, tx_desc,
sys/dev/iser/iser_initiator.c
425
device = iser_conn->ib_conn.device;
sys/dev/iser/iser_initiator.c
450
err = iser_post_send(&iser_conn->ib_conn, mdesc, true);
sys/dev/iser/iser_initiator.c
467
struct ib_conn *ib_conn)
sys/dev/iser/iser_initiator.c
469
struct iser_conn *iser_conn = container_of(ib_conn, struct iser_conn,
sys/dev/iser/iser_initiator.c
470
ib_conn);
sys/dev/iser/iser_initiator.c
487
ib_dma_sync_single_for_cpu(ib_conn->device->ib_device, rx_dma,
sys/dev/iser/iser_initiator.c
503
ib_dma_sync_single_for_device(ib_conn->device->ib_device, rx_dma,
sys/dev/iser/iser_initiator.c
510
ib_conn->post_recv_buf_count--;
sys/dev/iser/iser_initiator.c
515
outstanding = ib_conn->post_recv_buf_count;
sys/dev/iser/iser_initiator.c
530
struct ib_conn *ib_conn)
sys/dev/iser/iser_memory.c
104
dev = iser_pdu->iser_conn->ib_conn.device->ib_device;
sys/dev/iser/iser_memory.c
156
struct ib_conn *ib_conn = &iser_pdu->iser_conn->ib_conn;
sys/dev/iser/iser_memory.c
157
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_memory.c
195
ret = ib_post_send(ib_conn->qp, wr, &bad_wr);
sys/dev/iser/iser_memory.c
220
struct ib_conn *ib_conn = &iser_pdu->iser_conn->ib_conn;
sys/dev/iser/iser_memory.c
221
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_memory.c
235
desc = iser_reg_desc_get(ib_conn);
sys/dev/iser/iser_memory.c
248
iser_reg_desc_put(ib_conn, desc);
sys/dev/iser/iser_memory.c
262
iser_reg_desc_put(&iser_pdu->iser_conn->ib_conn,
sys/dev/iser/iser_memory.c
276
dev = iser_pdu->iser_conn->ib_conn.device->ib_device;
sys/dev/iser/iser_memory.c
29
iser_reg_desc_get(struct ib_conn *ib_conn)
sys/dev/iser/iser_memory.c
33
mtx_lock(&ib_conn->lock);
sys/dev/iser/iser_memory.c
34
desc = list_first_entry(&ib_conn->fastreg.pool,
sys/dev/iser/iser_memory.c
37
mtx_unlock(&ib_conn->lock);
sys/dev/iser/iser_memory.c
43
iser_reg_desc_put(struct ib_conn *ib_conn,
sys/dev/iser/iser_memory.c
46
mtx_lock(&ib_conn->lock);
sys/dev/iser/iser_memory.c
47
list_add(&desc->list, &ib_conn->fastreg.pool);
sys/dev/iser/iser_memory.c
48
mtx_unlock(&ib_conn->lock);
sys/dev/iser/iser_verbs.c
101
ib_conn->post_recv_buf_count--;
sys/dev/iser/iser_verbs.c
117
struct ib_conn *ib_conn;
sys/dev/iser/iser_verbs.c
121
ib_conn = wc->qp->qp_context;
sys/dev/iser/iser_verbs.c
126
ib_conn);
sys/dev/iser/iser_verbs.c
130
iser_snd_completion(tx_desc, ib_conn);
sys/dev/iser/iser_verbs.c
135
struct iser_conn *iser_conn = container_of(ib_conn, struct iser_conn,
sys/dev/iser/iser_verbs.c
136
ib_conn);
sys/dev/iser/iser_verbs.c
148
mtx_lock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
150
cv_signal(&ib_conn->beacon.flush_cv);
sys/dev/iser/iser_verbs.c
151
mtx_unlock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
153
iser_handle_comp_error(ib_conn, wc);
sys/dev/iser/iser_verbs.c
361
iser_create_fastreg_pool(struct ib_conn *ib_conn, unsigned cmds_max)
sys/dev/iser/iser_verbs.c
363
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_verbs.c
367
INIT_LIST_HEAD(&ib_conn->fastreg.pool);
sys/dev/iser/iser_verbs.c
368
ib_conn->fastreg.pool_size = 0;
sys/dev/iser/iser_verbs.c
376
list_add_tail(&desc->list, &ib_conn->fastreg.pool);
sys/dev/iser/iser_verbs.c
377
ib_conn->fastreg.pool_size++;
sys/dev/iser/iser_verbs.c
383
iser_free_fastreg_pool(ib_conn);
sys/dev/iser/iser_verbs.c
391
iser_free_fastreg_pool(struct ib_conn *ib_conn)
sys/dev/iser/iser_verbs.c
396
if (list_empty(&ib_conn->fastreg.pool))
sys/dev/iser/iser_verbs.c
399
ISER_DBG("freeing conn %p fr pool", ib_conn);
sys/dev/iser/iser_verbs.c
401
list_for_each_entry_safe(desc, tmp, &ib_conn->fastreg.pool, list) {
sys/dev/iser/iser_verbs.c
408
if (i < ib_conn->fastreg.pool_size)
sys/dev/iser/iser_verbs.c
410
ib_conn->fastreg.pool_size - i);
sys/dev/iser/iser_verbs.c
419
iser_create_ib_conn_res(struct ib_conn *ib_conn)
sys/dev/iser/iser_verbs.c
428
iser_conn = container_of(ib_conn, struct iser_conn, ib_conn);
sys/dev/iser/iser_verbs.c
429
device = ib_conn->device;
sys/dev/iser/iser_verbs.c
439
ib_conn->comp = &device->comps[min_index];
sys/dev/iser/iser_verbs.c
440
ib_conn->comp->active_qps++;
sys/dev/iser/iser_verbs.c
442
ISER_INFO("cq index %d used for ib_conn %p", min_index, ib_conn);
sys/dev/iser/iser_verbs.c
446
init_attr.qp_context = (void *)ib_conn;
sys/dev/iser/iser_verbs.c
447
init_attr.send_cq = ib_conn->comp->cq;
sys/dev/iser/iser_verbs.c
448
init_attr.recv_cq = ib_conn->comp->cq;
sys/dev/iser/iser_verbs.c
467
ret = rdma_create_qp(ib_conn->cma_id, device->pd, &init_attr);
sys/dev/iser/iser_verbs.c
471
ib_conn->qp = ib_conn->cma_id->qp;
sys/dev/iser/iser_verbs.c
473
ib_conn, ib_conn->cma_id,
sys/dev/iser/iser_verbs.c
474
ib_conn->cma_id->qp);
sys/dev/iser/iser_verbs.c
480
ib_conn->comp->active_qps--;
sys/dev/iser/iser_verbs.c
569
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
570
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_verbs.c
573
iser_conn, ib_conn->cma_id, ib_conn->qp);
sys/dev/iser/iser_verbs.c
575
if (ib_conn->qp != NULL) {
sys/dev/iser/iser_verbs.c
577
ib_conn->comp->active_qps--;
sys/dev/iser/iser_verbs.c
579
rdma_destroy_qp(ib_conn->cma_id);
sys/dev/iser/iser_verbs.c
580
ib_conn->qp = NULL;
sys/dev/iser/iser_verbs.c
592
ib_conn->device = NULL;
sys/dev/iser/iser_verbs.c
604
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
616
if (ib_conn->qp == NULL) {
sys/dev/iser/iser_verbs.c
636
if (ib_conn->cma_id) {
sys/dev/iser/iser_verbs.c
637
err = rdma_disconnect(ib_conn->cma_id);
sys/dev/iser/iser_verbs.c
642
mtx_lock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
643
memset(&ib_conn->beacon.send, 0, sizeof(struct ib_send_wr));
sys/dev/iser/iser_verbs.c
644
ib_conn->beacon.send.wr_id = ISER_BEACON_WRID;
sys/dev/iser/iser_verbs.c
645
ib_conn->beacon.send.opcode = IB_WR_SEND;
sys/dev/iser/iser_verbs.c
647
err = ib_post_send(ib_conn->qp, &ib_conn->beacon.send, &bad_send_wr);
sys/dev/iser/iser_verbs.c
649
ISER_ERR("conn %p failed to post send_beacon", ib_conn);
sys/dev/iser/iser_verbs.c
650
mtx_unlock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
655
cv_wait(&ib_conn->beacon.flush_cv, &ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
658
memset(&ib_conn->beacon.recv, 0, sizeof(struct ib_recv_wr));
sys/dev/iser/iser_verbs.c
659
ib_conn->beacon.recv.wr_id = ISER_BEACON_WRID;
sys/dev/iser/iser_verbs.c
661
err = ib_post_recv(ib_conn->qp, &ib_conn->beacon.recv, &bad_recv_wr);
sys/dev/iser/iser_verbs.c
663
ISER_ERR("conn %p failed to post recv_beacon", ib_conn);
sys/dev/iser/iser_verbs.c
664
mtx_unlock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
669
cv_wait(&ib_conn->beacon.flush_cv, &ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
670
mtx_unlock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
703
struct ib_conn *ib_conn;
sys/dev/iser/iser_verbs.c
708
ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
717
ib_conn->device = device;
sys/dev/iser/iser_verbs.c
737
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
738
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_verbs.c
740
ret = iser_create_ib_conn_res(ib_conn);
sys/dev/iser/iser_verbs.c
853
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
859
sge.lkey = ib_conn->device->mr->lkey;
sys/dev/iser/iser_verbs.c
866
ib_conn->post_recv_buf_count++;
sys/dev/iser/iser_verbs.c
867
ib_ret = ib_post_recv(ib_conn->qp, &rx_wr, &rx_wr_failed);
sys/dev/iser/iser_verbs.c
870
ib_conn->post_recv_buf_count--;
sys/dev/iser/iser_verbs.c
882
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
886
for (rx_wr = ib_conn->rx_wr, i = 0; i < count; i++, rx_wr++) {
sys/dev/iser/iser_verbs.c
898
ib_conn->post_recv_buf_count += count;
sys/dev/iser/iser_verbs.c
899
ib_ret = ib_post_recv(ib_conn->qp, ib_conn->rx_wr, &rx_wr_failed);
sys/dev/iser/iser_verbs.c
90
iser_handle_comp_error(struct ib_conn *ib_conn,
sys/dev/iser/iser_verbs.c
902
ib_conn->post_recv_buf_count -= count;
sys/dev/iser/iser_verbs.c
914
int iser_post_send(struct ib_conn *ib_conn, struct iser_tx_desc *tx_desc,
sys/dev/iser/iser_verbs.c
921
ib_dma_sync_single_for_device(ib_conn->device->ib_device,
sys/dev/iser/iser_verbs.c
932
ib_ret = ib_post_send(ib_conn->qp, &send_wr, &send_wr_failed);
sys/dev/iser/iser_verbs.c
94
struct iser_conn *iser_conn = container_of(ib_conn, struct iser_conn,
sys/dev/iser/iser_verbs.c
95
ib_conn);