@@ -50,11 +50,6 @@ struct nvm_area {
50
50
sector_t end ; /* end is excluded */
51
51
};
52
52
53
- enum {
54
- TRANS_TGT_TO_DEV = 0x0 ,
55
- TRANS_DEV_TO_TGT = 0x1 ,
56
- };
57
-
58
53
static struct nvm_target * nvm_find_target (struct nvm_dev * dev , const char * name )
59
54
{
60
55
struct nvm_target * tgt ;
@@ -428,38 +423,46 @@ static void nvm_map_to_tgt(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *p)
428
423
p -> g .lun -= lun_roff ;
429
424
}
430
425
431
- static void nvm_trans_rq (struct nvm_tgt_dev * tgt_dev , struct nvm_rq * rqd ,
432
- int flag )
426
+ static void nvm_ppa_tgt_to_dev (struct nvm_tgt_dev * tgt_dev ,
427
+ struct ppa_addr * ppa_list , int nr_ppas )
433
428
{
434
429
int i ;
435
430
436
- if (rqd -> nr_ppas == 1 ) {
437
- if (flag == TRANS_TGT_TO_DEV )
438
- nvm_map_to_dev (tgt_dev , & rqd -> ppa_addr );
439
- else
440
- nvm_map_to_tgt (tgt_dev , & rqd -> ppa_addr );
441
- return ;
431
+ for (i = 0 ; i < nr_ppas ; i ++ ) {
432
+ nvm_map_to_dev (tgt_dev , & ppa_list [i ]);
433
+ ppa_list [i ] = generic_to_dev_addr (tgt_dev , ppa_list [i ]);
442
434
}
435
+ }
443
436
444
- for (i = 0 ; i < rqd -> nr_ppas ; i ++ ) {
445
- if (flag == TRANS_TGT_TO_DEV )
446
- nvm_map_to_dev (tgt_dev , & rqd -> ppa_list [i ]);
447
- else
448
- nvm_map_to_tgt (tgt_dev , & rqd -> ppa_list [i ]);
437
+ static void nvm_ppa_dev_to_tgt (struct nvm_tgt_dev * tgt_dev ,
438
+ struct ppa_addr * ppa_list , int nr_ppas )
439
+ {
440
+ int i ;
441
+
442
+ for (i = 0 ; i < nr_ppas ; i ++ ) {
443
+ ppa_list [i ] = dev_to_generic_addr (tgt_dev , ppa_list [i ]);
444
+ nvm_map_to_tgt (tgt_dev , & ppa_list [i ]);
449
445
}
450
446
}
451
447
452
- static struct ppa_addr nvm_trans_ppa (struct nvm_tgt_dev * tgt_dev ,
453
- struct ppa_addr p , int dir )
448
+ static void nvm_rq_tgt_to_dev (struct nvm_tgt_dev * tgt_dev , struct nvm_rq * rqd )
454
449
{
455
- struct ppa_addr ppa = p ;
450
+ if (rqd -> nr_ppas == 1 ) {
451
+ nvm_ppa_tgt_to_dev (tgt_dev , & rqd -> ppa_addr , 1 );
452
+ return ;
453
+ }
456
454
457
- if (dir == TRANS_TGT_TO_DEV )
458
- nvm_map_to_dev (tgt_dev , & ppa );
459
- else
460
- nvm_map_to_tgt (tgt_dev , & ppa );
455
+ nvm_ppa_tgt_to_dev (tgt_dev , rqd -> ppa_list , rqd -> nr_ppas );
456
+ }
457
+
458
+ static void nvm_rq_dev_to_tgt (struct nvm_tgt_dev * tgt_dev , struct nvm_rq * rqd )
459
+ {
460
+ if (rqd -> nr_ppas == 1 ) {
461
+ nvm_ppa_dev_to_tgt (tgt_dev , & rqd -> ppa_addr , 1 );
462
+ return ;
463
+ }
461
464
462
- return ppa ;
465
+ nvm_ppa_dev_to_tgt ( tgt_dev , rqd -> ppa_list , rqd -> nr_ppas ) ;
463
466
}
464
467
465
468
void nvm_part_to_tgt (struct nvm_dev * dev , sector_t * entries ,
@@ -564,26 +567,6 @@ static struct nvm_dev *nvm_find_nvm_dev(const char *name)
564
567
return NULL ;
565
568
}
566
569
567
- static void nvm_tgt_generic_to_addr_mode (struct nvm_tgt_dev * tgt_dev ,
568
- struct nvm_rq * rqd )
569
- {
570
- struct nvm_dev * dev = tgt_dev -> parent ;
571
- int i ;
572
-
573
- if (rqd -> nr_ppas > 1 ) {
574
- for (i = 0 ; i < rqd -> nr_ppas ; i ++ ) {
575
- rqd -> ppa_list [i ] = nvm_trans_ppa (tgt_dev ,
576
- rqd -> ppa_list [i ], TRANS_TGT_TO_DEV );
577
- rqd -> ppa_list [i ] = generic_to_dev_addr (dev ,
578
- rqd -> ppa_list [i ]);
579
- }
580
- } else {
581
- rqd -> ppa_addr = nvm_trans_ppa (tgt_dev , rqd -> ppa_addr ,
582
- TRANS_TGT_TO_DEV );
583
- rqd -> ppa_addr = generic_to_dev_addr (dev , rqd -> ppa_addr );
584
- }
585
- }
586
-
587
570
int nvm_set_tgt_bb_tbl (struct nvm_tgt_dev * tgt_dev , struct ppa_addr * ppas ,
588
571
int nr_ppas , int type )
589
572
{
@@ -599,7 +582,7 @@ int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas,
599
582
memset (& rqd , 0 , sizeof (struct nvm_rq ));
600
583
601
584
nvm_set_rqd_ppalist (dev , & rqd , ppas , nr_ppas , 1 );
602
- nvm_tgt_generic_to_addr_mode (tgt_dev , & rqd );
585
+ nvm_rq_tgt_to_dev (tgt_dev , & rqd );
603
586
604
587
ret = dev -> ops -> set_bb_tbl (dev , & rqd .ppa_addr , rqd .nr_ppas , type );
605
588
nvm_free_rqd_ppalist (dev , & rqd );
@@ -627,8 +610,7 @@ int nvm_submit_io(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd)
627
610
if (!dev -> ops -> submit_io )
628
611
return - ENODEV ;
629
612
630
- /* Convert address space */
631
- nvm_generic_to_addr_mode (dev , rqd );
613
+ nvm_rq_tgt_to_dev (tgt_dev , rqd );
632
614
633
615
rqd -> dev = tgt_dev ;
634
616
return dev -> ops -> submit_io (dev , rqd );
@@ -652,7 +634,7 @@ int nvm_erase_blk(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas, int flags)
652
634
if (ret )
653
635
return ret ;
654
636
655
- nvm_generic_to_addr_mode ( dev , & rqd );
637
+ nvm_rq_tgt_to_dev ( tgt_dev , & rqd );
656
638
657
639
rqd .flags = flags ;
658
640
@@ -741,34 +723,6 @@ void nvm_put_area(struct nvm_tgt_dev *tgt_dev, sector_t begin)
741
723
}
742
724
EXPORT_SYMBOL (nvm_put_area );
743
725
744
- void nvm_addr_to_generic_mode (struct nvm_dev * dev , struct nvm_rq * rqd )
745
- {
746
- int i ;
747
-
748
- if (rqd -> nr_ppas > 1 ) {
749
- for (i = 0 ; i < rqd -> nr_ppas ; i ++ )
750
- rqd -> ppa_list [i ] = dev_to_generic_addr (dev ,
751
- rqd -> ppa_list [i ]);
752
- } else {
753
- rqd -> ppa_addr = dev_to_generic_addr (dev , rqd -> ppa_addr );
754
- }
755
- }
756
- EXPORT_SYMBOL (nvm_addr_to_generic_mode );
757
-
758
- void nvm_generic_to_addr_mode (struct nvm_dev * dev , struct nvm_rq * rqd )
759
- {
760
- int i ;
761
-
762
- if (rqd -> nr_ppas > 1 ) {
763
- for (i = 0 ; i < rqd -> nr_ppas ; i ++ )
764
- rqd -> ppa_list [i ] = generic_to_dev_addr (dev ,
765
- rqd -> ppa_list [i ]);
766
- } else {
767
- rqd -> ppa_addr = generic_to_dev_addr (dev , rqd -> ppa_addr );
768
- }
769
- }
770
- EXPORT_SYMBOL (nvm_generic_to_addr_mode );
771
-
772
726
int nvm_set_rqd_ppalist (struct nvm_dev * dev , struct nvm_rq * rqd ,
773
727
const struct ppa_addr * ppas , int nr_ppas , int vblk )
774
728
{
@@ -826,7 +780,7 @@ void nvm_end_io(struct nvm_rq *rqd, int error)
826
780
827
781
/* Convert address space */
828
782
if (tgt_dev )
829
- nvm_trans_rq (tgt_dev , rqd , TRANS_DEV_TO_TGT );
783
+ nvm_rq_dev_to_tgt (tgt_dev , rqd );
830
784
831
785
rqd -> error = error ;
832
786
ins -> tt -> end_io (rqd );
@@ -874,8 +828,7 @@ int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr ppa,
874
828
{
875
829
struct nvm_dev * dev = tgt_dev -> parent ;
876
830
877
- ppa = nvm_trans_ppa (tgt_dev , ppa , TRANS_TGT_TO_DEV );
878
- ppa = generic_to_dev_addr (dev , ppa );
831
+ nvm_ppa_tgt_to_dev (tgt_dev , & ppa , 1 );
879
832
880
833
return dev -> ops -> get_bb_tbl (dev , ppa , blks );
881
834
}
0 commit comments