Lines Matching refs:tgt_dev
111 static void nvm_remove_tgt_dev(struct nvm_tgt_dev *tgt_dev, int clear) in nvm_remove_tgt_dev() argument
113 struct nvm_dev *dev = tgt_dev->parent; in nvm_remove_tgt_dev()
114 struct nvm_dev_map *dev_map = tgt_dev->map; in nvm_remove_tgt_dev()
138 kfree(tgt_dev->luns); in nvm_remove_tgt_dev()
139 kfree(tgt_dev); in nvm_remove_tgt_dev()
146 struct nvm_tgt_dev *tgt_dev = NULL; in nvm_create_tgt_dev() local
213 tgt_dev = kmalloc(sizeof(struct nvm_tgt_dev), GFP_KERNEL); in nvm_create_tgt_dev()
214 if (!tgt_dev) in nvm_create_tgt_dev()
218 memcpy(&tgt_dev->geo, &dev->geo, sizeof(struct nvm_geo)); in nvm_create_tgt_dev()
221 tgt_dev->geo.num_ch = num_ch; in nvm_create_tgt_dev()
222 tgt_dev->geo.num_lun = (lun_balanced) ? prev_num_lun : -1; in nvm_create_tgt_dev()
223 tgt_dev->geo.all_luns = num_lun; in nvm_create_tgt_dev()
224 tgt_dev->geo.all_chunks = num_lun * dev->geo.num_chk; in nvm_create_tgt_dev()
226 tgt_dev->geo.op = op; in nvm_create_tgt_dev()
229 tgt_dev->geo.total_secs = num_lun * sec_per_lun; in nvm_create_tgt_dev()
231 tgt_dev->q = dev->q; in nvm_create_tgt_dev()
232 tgt_dev->map = dev_map; in nvm_create_tgt_dev()
233 tgt_dev->luns = luns; in nvm_create_tgt_dev()
234 tgt_dev->parent = dev; in nvm_create_tgt_dev()
236 return tgt_dev; in nvm_create_tgt_dev()
246 return tgt_dev; in nvm_create_tgt_dev()
326 struct nvm_tgt_dev *tgt_dev; in nvm_create_tgt() local
374 tgt_dev = nvm_create_tgt_dev(dev, e.lun_begin, e.lun_end, e.op); in nvm_create_tgt()
375 if (!tgt_dev) { in nvm_create_tgt()
401 targetdata = tt->init(tgt_dev, tdisk, create->flags); in nvm_create_tgt()
423 t->dev = tgt_dev; in nvm_create_tgt()
441 nvm_remove_tgt_dev(tgt_dev, 0); in nvm_create_tgt()
556 static void nvm_map_to_dev(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *p) in nvm_map_to_dev() argument
558 struct nvm_dev_map *dev_map = tgt_dev->map; in nvm_map_to_dev()
566 static void nvm_map_to_tgt(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *p) in nvm_map_to_tgt() argument
568 struct nvm_dev *dev = tgt_dev->parent; in nvm_map_to_tgt()
577 static void nvm_ppa_tgt_to_dev(struct nvm_tgt_dev *tgt_dev, in nvm_ppa_tgt_to_dev() argument
583 nvm_map_to_dev(tgt_dev, &ppa_list[i]); in nvm_ppa_tgt_to_dev()
584 ppa_list[i] = generic_to_dev_addr(tgt_dev->parent, ppa_list[i]); in nvm_ppa_tgt_to_dev()
588 static void nvm_ppa_dev_to_tgt(struct nvm_tgt_dev *tgt_dev, in nvm_ppa_dev_to_tgt() argument
594 ppa_list[i] = dev_to_generic_addr(tgt_dev->parent, ppa_list[i]); in nvm_ppa_dev_to_tgt()
595 nvm_map_to_tgt(tgt_dev, &ppa_list[i]); in nvm_ppa_dev_to_tgt()
599 static void nvm_rq_tgt_to_dev(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd) in nvm_rq_tgt_to_dev() argument
602 nvm_ppa_tgt_to_dev(tgt_dev, &rqd->ppa_addr, 1); in nvm_rq_tgt_to_dev()
606 nvm_ppa_tgt_to_dev(tgt_dev, rqd->ppa_list, rqd->nr_ppas); in nvm_rq_tgt_to_dev()
609 static void nvm_rq_dev_to_tgt(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd) in nvm_rq_dev_to_tgt() argument
612 nvm_ppa_dev_to_tgt(tgt_dev, &rqd->ppa_addr, 1); in nvm_rq_dev_to_tgt()
616 nvm_ppa_dev_to_tgt(tgt_dev, rqd->ppa_list, rqd->nr_ppas); in nvm_rq_dev_to_tgt()
670 static int nvm_set_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd, in nvm_set_rqd_ppalist() argument
673 struct nvm_dev *dev = tgt_dev->parent; in nvm_set_rqd_ppalist()
674 struct nvm_geo *geo = &tgt_dev->geo; in nvm_set_rqd_ppalist()
706 static void nvm_free_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, in nvm_free_rqd_ppalist() argument
712 nvm_dev_dma_free(tgt_dev->parent, rqd->ppa_list, rqd->dma_ppa_list); in nvm_free_rqd_ppalist()
715 int nvm_get_chunk_meta(struct nvm_tgt_dev *tgt_dev, struct nvm_chk_meta *meta, in nvm_get_chunk_meta() argument
718 struct nvm_dev *dev = tgt_dev->parent; in nvm_get_chunk_meta()
720 nvm_ppa_tgt_to_dev(tgt_dev, &ppa, 1); in nvm_get_chunk_meta()
722 return dev->ops->get_chk_meta(tgt_dev->parent, meta, in nvm_get_chunk_meta()
727 int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas, in nvm_set_tgt_bb_tbl() argument
730 struct nvm_dev *dev = tgt_dev->parent; in nvm_set_tgt_bb_tbl()
741 nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas); in nvm_set_tgt_bb_tbl()
742 nvm_rq_tgt_to_dev(tgt_dev, &rqd); in nvm_set_tgt_bb_tbl()
745 nvm_free_rqd_ppalist(tgt_dev, &rqd); in nvm_set_tgt_bb_tbl()
755 int nvm_submit_io(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd) in nvm_submit_io() argument
757 struct nvm_dev *dev = tgt_dev->parent; in nvm_submit_io()
763 nvm_rq_tgt_to_dev(tgt_dev, rqd); in nvm_submit_io()
765 rqd->dev = tgt_dev; in nvm_submit_io()
770 nvm_rq_dev_to_tgt(tgt_dev, rqd); in nvm_submit_io()
775 int nvm_submit_io_sync(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd) in nvm_submit_io_sync() argument
777 struct nvm_dev *dev = tgt_dev->parent; in nvm_submit_io_sync()
783 nvm_rq_tgt_to_dev(tgt_dev, rqd); in nvm_submit_io_sync()
785 rqd->dev = tgt_dev; in nvm_submit_io_sync()
789 nvm_rq_dev_to_tgt(tgt_dev, rqd); in nvm_submit_io_sync()
797 struct nvm_tgt_dev *tgt_dev = rqd->dev; in nvm_end_io() local
800 if (tgt_dev) in nvm_end_io()
801 nvm_rq_dev_to_tgt(tgt_dev, rqd); in nvm_end_io()
844 int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr ppa, in nvm_get_tgt_bb_tbl() argument
847 struct nvm_dev *dev = tgt_dev->parent; in nvm_get_tgt_bb_tbl()
849 nvm_ppa_tgt_to_dev(tgt_dev, &ppa, 1); in nvm_get_tgt_bb_tbl()