cxlflash: Virtual LUN support
Add support for physical LUN segmentation (virtual LUNs) to device driver supporting the IBM CXL Flash adapter. This patch allows user space applications to virtually segment a physical LUN into N virtual LUNs, taking advantage of the translation features provided by this adapter. Signed-off-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com> Signed-off-by: Manoj N. Kumar <manoj@linux.vnet.ibm.com> Reviewed-by: Michael Neuling <mikey@neuling.org> Reviewed-by: Wen Xiong <wenxiong@linux.vnet.ibm.com> Signed-off-by: James Bottomley <JBottomley@Odin.com>
This commit is contained in:

committed by
James Bottomley

parent
65be2c79ac
commit
2cb79266d6
@@ -1989,6 +1989,8 @@ static int init_afu(struct cxlflash_cfg *cfg)
|
||||
afu_err_intr_init(cfg->afu);
|
||||
atomic64_set(&afu->room, readq_be(&afu->host_map->cmd_room));
|
||||
|
||||
/* Restore the LUN mappings */
|
||||
cxlflash_restore_luntable(cfg);
|
||||
err1:
|
||||
pr_debug("%s: returning rc=%d\n", __func__, rc);
|
||||
return rc;
|
||||
@@ -2286,6 +2288,17 @@ static int cxlflash_probe(struct pci_dev *pdev,
|
||||
|
||||
cfg->init_state = INIT_STATE_NONE;
|
||||
cfg->dev = pdev;
|
||||
|
||||
/*
|
||||
* The promoted LUNs move to the top of the LUN table. The rest stay
|
||||
* on the bottom half. The bottom half grows from the end
|
||||
* (index = 255), whereas the top half grows from the beginning
|
||||
* (index = 0).
|
||||
*/
|
||||
cfg->promote_lun_index = 0;
|
||||
cfg->last_lun_index[0] = CXLFLASH_NUM_VLUNS/2 - 1;
|
||||
cfg->last_lun_index[1] = CXLFLASH_NUM_VLUNS/2 - 1;
|
||||
|
||||
cfg->dev_id = (struct pci_device_id *)dev_id;
|
||||
cfg->mcctx = NULL;
|
||||
|
||||
|
Reference in New Issue
Block a user