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
359
iser_create_fastreg_pool(struct ib_conn *ib_conn, unsigned cmds_max)
sys/dev/iser/iser_verbs.c
361
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_verbs.c
365
INIT_LIST_HEAD(&ib_conn->fastreg.pool);
sys/dev/iser/iser_verbs.c
366
ib_conn->fastreg.pool_size = 0;
sys/dev/iser/iser_verbs.c
374
list_add_tail(&desc->list, &ib_conn->fastreg.pool);
sys/dev/iser/iser_verbs.c
375
ib_conn->fastreg.pool_size++;
sys/dev/iser/iser_verbs.c
381
iser_free_fastreg_pool(ib_conn);
sys/dev/iser/iser_verbs.c
389
iser_free_fastreg_pool(struct ib_conn *ib_conn)
sys/dev/iser/iser_verbs.c
394
if (list_empty(&ib_conn->fastreg.pool))
sys/dev/iser/iser_verbs.c
397
ISER_DBG("freeing conn %p fr pool", ib_conn);
sys/dev/iser/iser_verbs.c
399
list_for_each_entry_safe(desc, tmp, &ib_conn->fastreg.pool, list) {
sys/dev/iser/iser_verbs.c
406
if (i < ib_conn->fastreg.pool_size)
sys/dev/iser/iser_verbs.c
408
ib_conn->fastreg.pool_size - i);
sys/dev/iser/iser_verbs.c
417
iser_create_ib_conn_res(struct ib_conn *ib_conn)
sys/dev/iser/iser_verbs.c
426
iser_conn = container_of(ib_conn, struct iser_conn, ib_conn);
sys/dev/iser/iser_verbs.c
427
device = ib_conn->device;
sys/dev/iser/iser_verbs.c
437
ib_conn->comp = &device->comps[min_index];
sys/dev/iser/iser_verbs.c
438
ib_conn->comp->active_qps++;
sys/dev/iser/iser_verbs.c
440
ISER_INFO("cq index %d used for ib_conn %p", min_index, ib_conn);
sys/dev/iser/iser_verbs.c
444
init_attr.qp_context = (void *)ib_conn;
sys/dev/iser/iser_verbs.c
445
init_attr.send_cq = ib_conn->comp->cq;
sys/dev/iser/iser_verbs.c
446
init_attr.recv_cq = ib_conn->comp->cq;
sys/dev/iser/iser_verbs.c
465
ret = rdma_create_qp(ib_conn->cma_id, device->pd, &init_attr);
sys/dev/iser/iser_verbs.c
469
ib_conn->qp = ib_conn->cma_id->qp;
sys/dev/iser/iser_verbs.c
471
ib_conn, ib_conn->cma_id,
sys/dev/iser/iser_verbs.c
472
ib_conn->cma_id->qp);
sys/dev/iser/iser_verbs.c
478
ib_conn->comp->active_qps--;
sys/dev/iser/iser_verbs.c
567
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
568
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_verbs.c
571
iser_conn, ib_conn->cma_id, ib_conn->qp);
sys/dev/iser/iser_verbs.c
573
if (ib_conn->qp != NULL) {
sys/dev/iser/iser_verbs.c
575
ib_conn->comp->active_qps--;
sys/dev/iser/iser_verbs.c
577
rdma_destroy_qp(ib_conn->cma_id);
sys/dev/iser/iser_verbs.c
578
ib_conn->qp = NULL;
sys/dev/iser/iser_verbs.c
590
ib_conn->device = NULL;
sys/dev/iser/iser_verbs.c
602
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
614
if (ib_conn->qp == NULL) {
sys/dev/iser/iser_verbs.c
634
if (ib_conn->cma_id) {
sys/dev/iser/iser_verbs.c
635
err = rdma_disconnect(ib_conn->cma_id);
sys/dev/iser/iser_verbs.c
640
mtx_lock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
641
memset(&ib_conn->beacon.send, 0, sizeof(struct ib_send_wr));
sys/dev/iser/iser_verbs.c
642
ib_conn->beacon.send.wr_id = ISER_BEACON_WRID;
sys/dev/iser/iser_verbs.c
643
ib_conn->beacon.send.opcode = IB_WR_SEND;
sys/dev/iser/iser_verbs.c
645
err = ib_post_send(ib_conn->qp, &ib_conn->beacon.send, &bad_send_wr);
sys/dev/iser/iser_verbs.c
647
ISER_ERR("conn %p failed to post send_beacon", ib_conn);
sys/dev/iser/iser_verbs.c
648
mtx_unlock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
653
cv_wait(&ib_conn->beacon.flush_cv, &ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
656
memset(&ib_conn->beacon.recv, 0, sizeof(struct ib_recv_wr));
sys/dev/iser/iser_verbs.c
657
ib_conn->beacon.recv.wr_id = ISER_BEACON_WRID;
sys/dev/iser/iser_verbs.c
659
err = ib_post_recv(ib_conn->qp, &ib_conn->beacon.recv, &bad_recv_wr);
sys/dev/iser/iser_verbs.c
661
ISER_ERR("conn %p failed to post recv_beacon", ib_conn);
sys/dev/iser/iser_verbs.c
662
mtx_unlock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
667
cv_wait(&ib_conn->beacon.flush_cv, &ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
668
mtx_unlock(&ib_conn->beacon.flush_lock);
sys/dev/iser/iser_verbs.c
701
struct ib_conn *ib_conn;
sys/dev/iser/iser_verbs.c
706
ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
715
ib_conn->device = device;
sys/dev/iser/iser_verbs.c
735
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
736
struct iser_device *device = ib_conn->device;
sys/dev/iser/iser_verbs.c
738
ret = iser_create_ib_conn_res(ib_conn);
sys/dev/iser/iser_verbs.c
851
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
857
sge.lkey = ib_conn->device->mr->lkey;
sys/dev/iser/iser_verbs.c
864
ib_conn->post_recv_buf_count++;
sys/dev/iser/iser_verbs.c
865
ib_ret = ib_post_recv(ib_conn->qp, &rx_wr, &rx_wr_failed);
sys/dev/iser/iser_verbs.c
868
ib_conn->post_recv_buf_count--;
sys/dev/iser/iser_verbs.c
880
struct ib_conn *ib_conn = &iser_conn->ib_conn;
sys/dev/iser/iser_verbs.c
884
for (rx_wr = ib_conn->rx_wr, i = 0; i < count; i++, rx_wr++) {
sys/dev/iser/iser_verbs.c
896
ib_conn->post_recv_buf_count += count;
sys/dev/iser/iser_verbs.c
897
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
900
ib_conn->post_recv_buf_count -= count;
sys/dev/iser/iser_verbs.c
912
int iser_post_send(struct ib_conn *ib_conn, struct iser_tx_desc *tx_desc,
sys/dev/iser/iser_verbs.c
919
ib_dma_sync_single_for_device(ib_conn->device->ib_device,
sys/dev/iser/iser_verbs.c
930
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);