65
65
#include <linux/in6.h>
66
66
67
67
#include <rdma/ib_verbs.h>
68
- #include <rdma/ib_fmr_pool.h>
69
68
#include <rdma/rdma_cm.h>
70
69
71
70
#define DRV_NAME "iser"
@@ -312,33 +311,6 @@ struct iser_comp {
312
311
int active_qps ;
313
312
};
314
313
315
- /**
316
- * struct iser_reg_ops - Memory registration operations
317
- * per-device registration schemes
318
- *
319
- * @alloc_reg_res: Allocate registration resources
320
- * @free_reg_res: Free registration resources
321
- * @reg_mem: Register memory buffers
322
- * @unreg_mem: Un-register memory buffers
323
- * @reg_desc_get: Get a registration descriptor for pool
324
- * @reg_desc_put: Get a registration descriptor to pool
325
- */
326
- struct iser_reg_ops {
327
- int (* alloc_reg_res )(struct ib_conn * ib_conn ,
328
- unsigned cmds_max ,
329
- unsigned int size );
330
- void (* free_reg_res )(struct ib_conn * ib_conn );
331
- int (* reg_mem )(struct iscsi_iser_task * iser_task ,
332
- struct iser_data_buf * mem ,
333
- struct iser_reg_resources * rsc ,
334
- struct iser_mem_reg * reg );
335
- void (* unreg_mem )(struct iscsi_iser_task * iser_task ,
336
- enum iser_data_dir cmd_dir );
337
- struct iser_fr_desc * (* reg_desc_get )(struct ib_conn * ib_conn );
338
- void (* reg_desc_put )(struct ib_conn * ib_conn ,
339
- struct iser_fr_desc * desc );
340
- };
341
-
342
314
/**
343
315
* struct iser_device - iSER device handle
344
316
*
@@ -351,8 +323,6 @@ struct iser_reg_ops {
351
323
* @comps_used: Number of completion contexts used, Min between online
352
324
* cpus and device max completion vectors
353
325
* @comps: Dinamically allocated array of completion handlers
354
- * @reg_ops: Registration ops
355
- * @remote_inv_sup: Remote invalidate is supported on this device
356
326
*/
357
327
struct iser_device {
358
328
struct ib_device * ib_device ;
@@ -362,26 +332,18 @@ struct iser_device {
362
332
int refcount ;
363
333
int comps_used ;
364
334
struct iser_comp * comps ;
365
- const struct iser_reg_ops * reg_ops ;
366
- bool remote_inv_sup ;
367
335
};
368
336
369
337
/**
370
338
* struct iser_reg_resources - Fast registration resources
371
339
*
372
340
* @mr: memory region
373
- * @fmr_pool: pool of fmrs
374
341
* @sig_mr: signature memory region
375
- * @page_vec: fast reg page list used by fmr pool
376
342
* @mr_valid: is mr valid indicator
377
343
*/
378
344
struct iser_reg_resources {
379
- union {
380
- struct ib_mr * mr ;
381
- struct ib_fmr_pool * fmr_pool ;
382
- };
345
+ struct ib_mr * mr ;
383
346
struct ib_mr * sig_mr ;
384
- struct iser_page_vec * page_vec ;
385
347
u8 mr_valid :1 ;
386
348
};
387
349
@@ -403,7 +365,7 @@ struct iser_fr_desc {
403
365
* struct iser_fr_pool - connection fast registration pool
404
366
*
405
367
* @list: list of fastreg descriptors
406
- * @lock: protects fmr/ fastreg pool
368
+ * @lock: protects fastreg pool
407
369
* @size: size of the pool
408
370
*/
409
371
struct iser_fr_pool {
@@ -518,12 +480,6 @@ struct iscsi_iser_task {
518
480
struct iser_data_buf prot [ISER_DIRS_NUM ];
519
481
};
520
482
521
- struct iser_page_vec {
522
- u64 * pages ;
523
- int npages ;
524
- struct ib_mr fake_mr ;
525
- };
526
-
527
483
/**
528
484
* struct iser_global - iSER global context
529
485
*
@@ -548,8 +504,6 @@ extern int iser_pi_guard;
548
504
extern unsigned int iser_max_sectors ;
549
505
extern bool iser_always_reg ;
550
506
551
- int iser_assign_reg_ops (struct iser_device * device );
552
-
553
507
int iser_send_control (struct iscsi_conn * conn ,
554
508
struct iscsi_task * task );
555
509
@@ -591,22 +545,17 @@ void iser_finalize_rdma_unaligned_sg(struct iscsi_iser_task *iser_task,
591
545
struct iser_data_buf * mem ,
592
546
enum iser_data_dir cmd_dir );
593
547
594
- int iser_reg_rdma_mem (struct iscsi_iser_task * task ,
595
- enum iser_data_dir dir ,
596
- bool all_imm );
597
- void iser_unreg_rdma_mem (struct iscsi_iser_task * task ,
598
- enum iser_data_dir dir );
548
+ int iser_reg_mem_fastreg (struct iscsi_iser_task * task ,
549
+ enum iser_data_dir dir ,
550
+ bool all_imm );
551
+ void iser_unreg_mem_fastreg (struct iscsi_iser_task * task ,
552
+ enum iser_data_dir dir );
599
553
600
554
int iser_connect (struct iser_conn * iser_conn ,
601
555
struct sockaddr * src_addr ,
602
556
struct sockaddr * dst_addr ,
603
557
int non_blocking );
604
558
605
- void iser_unreg_mem_fmr (struct iscsi_iser_task * iser_task ,
606
- enum iser_data_dir cmd_dir );
607
- void iser_unreg_mem_fastreg (struct iscsi_iser_task * iser_task ,
608
- enum iser_data_dir cmd_dir );
609
-
610
559
int iser_post_recvl (struct iser_conn * iser_conn );
611
560
int iser_post_recvm (struct iser_conn * iser_conn , int count );
612
561
int iser_post_send (struct ib_conn * ib_conn , struct iser_tx_desc * tx_desc ,
@@ -625,26 +574,12 @@ int iser_initialize_task_headers(struct iscsi_task *task,
625
574
struct iser_tx_desc * tx_desc );
626
575
int iser_alloc_rx_descriptors (struct iser_conn * iser_conn ,
627
576
struct iscsi_session * session );
628
- int iser_alloc_fmr_pool (struct ib_conn * ib_conn ,
629
- unsigned cmds_max ,
630
- unsigned int size );
631
- void iser_free_fmr_pool (struct ib_conn * ib_conn );
632
577
int iser_alloc_fastreg_pool (struct ib_conn * ib_conn ,
633
578
unsigned cmds_max ,
634
579
unsigned int size );
635
580
void iser_free_fastreg_pool (struct ib_conn * ib_conn );
636
581
u8 iser_check_task_pi_status (struct iscsi_iser_task * iser_task ,
637
582
enum iser_data_dir cmd_dir , sector_t * sector );
638
- struct iser_fr_desc *
639
- iser_reg_desc_get_fr (struct ib_conn * ib_conn );
640
- void
641
- iser_reg_desc_put_fr (struct ib_conn * ib_conn ,
642
- struct iser_fr_desc * desc );
643
- struct iser_fr_desc *
644
- iser_reg_desc_get_fmr (struct ib_conn * ib_conn );
645
- void
646
- iser_reg_desc_put_fmr (struct ib_conn * ib_conn ,
647
- struct iser_fr_desc * desc );
648
583
649
584
static inline struct iser_conn *
650
585
to_iser_conn (struct ib_conn * ib_conn )
0 commit comments