diff options
author | Matthew R. Ochs | 2018-01-03 16:54:50 -0600 |
---|---|---|
committer | Martin K. Petersen | 2018-01-10 23:24:57 -0500 |
commit | 8762353106c4376deabd76473e1bd7ba36dd529c (patch) | |
tree | edde4fde1e85c23419f2f41aba9a623cf5617fda | |
parent | af2047ec00bfd61b46b653e856dcf1e0bc567619 (diff) |
scsi: cxlflash: Remove embedded CXL work structures
The CXL-specific work structure used to request the number of interrupts
currently resides as a nested member of both the context information and
hardware queue structures. It is used to cache values (specifically the
number of interrupts) required by the CXL layer when starting a context.
To facilitate staging that will ultimately allow the cxlflash core to
become agnostic of the underlying accelerator transport, remove these
embedded work structures.
Signed-off-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Signed-off-by: Uma Krishnan <ukrishn@linux.vnet.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r-- | drivers/scsi/cxlflash/common.h | 1 | ||||
-rw-r--r-- | drivers/scsi/cxlflash/main.c | 4 | ||||
-rw-r--r-- | drivers/scsi/cxlflash/superpipe.c | 15 | ||||
-rw-r--r-- | drivers/scsi/cxlflash/superpipe.h | 1 |
4 files changed, 10 insertions, 11 deletions
diff --git a/drivers/scsi/cxlflash/common.h b/drivers/scsi/cxlflash/common.h index d2a180de7e6c..48df89f6f0b3 100644 --- a/drivers/scsi/cxlflash/common.h +++ b/drivers/scsi/cxlflash/common.h @@ -204,7 +204,6 @@ struct hwq { */ struct afu *afu; void *ctx_cookie; - struct cxl_ioctl_start_work work; struct sisl_host_map __iomem *host_map; /* MC host map */ struct sisl_ctrl_map __iomem *ctrl_map; /* MC control map */ ctx_hndl_t ctx_hndl; /* master's context handle */ diff --git a/drivers/scsi/cxlflash/main.c b/drivers/scsi/cxlflash/main.c index 3880d522368f..b6cadebbfa94 100644 --- a/drivers/scsi/cxlflash/main.c +++ b/drivers/scsi/cxlflash/main.c @@ -1611,9 +1611,7 @@ static int start_context(struct cxlflash_cfg *cfg, u32 index) struct hwq *hwq = get_hwq(cfg->afu, index); int rc = 0; - rc = cxl_start_context(hwq->ctx_cookie, - hwq->work.work_element_descriptor, - NULL); + rc = cxl_start_context(hwq->ctx_cookie, 0, NULL); dev_dbg(dev, "%s: returning rc=%d\n", __func__, rc); return rc; diff --git a/drivers/scsi/cxlflash/superpipe.c b/drivers/scsi/cxlflash/superpipe.c index ecfa5532ef18..51f67dcca90a 100644 --- a/drivers/scsi/cxlflash/superpipe.c +++ b/drivers/scsi/cxlflash/superpipe.c @@ -1309,7 +1309,7 @@ static int cxlflash_disk_attach(struct scsi_device *sdev, struct afu *afu = cfg->afu; struct llun_info *lli = sdev->hostdata; struct glun_info *gli = lli->parent; - struct cxl_ioctl_start_work *work; + struct cxl_ioctl_start_work work = { 0 }; struct ctx_info *ctxi = NULL; struct lun_access *lun_access = NULL; int rc = 0; @@ -1405,11 +1405,10 @@ static int cxlflash_disk_attach(struct scsi_device *sdev, goto err; } - work = &ctxi->work; - work->num_interrupts = irqs; - work->flags = CXL_START_WORK_NUM_IRQS; + work.num_interrupts = irqs; + work.flags = CXL_START_WORK_NUM_IRQS; - rc = cxl_start_work(ctx, work); + rc = cxl_start_work(ctx, &work); if (unlikely(rc)) { dev_dbg(dev, "%s: Could not start context rc=%d\n", __func__, rc); @@ -1534,6 +1533,7 @@ static int recover_context(struct cxlflash_cfg *cfg, struct file *file; void *ctx; struct afu *afu = cfg->afu; + struct cxl_ioctl_start_work work = { 0 }; ctx = cxl_dev_context_init(cfg->dev); if (IS_ERR_OR_NULL(ctx)) { @@ -1543,7 +1543,10 @@ static int recover_context(struct cxlflash_cfg *cfg, goto out; } - rc = cxl_start_work(ctx, &ctxi->work); + work.num_interrupts = ctxi->irqs; + work.flags = CXL_START_WORK_NUM_IRQS; + + rc = cxl_start_work(ctx, &work); if (unlikely(rc)) { dev_dbg(dev, "%s: Could not start context rc=%d\n", __func__, rc); diff --git a/drivers/scsi/cxlflash/superpipe.h b/drivers/scsi/cxlflash/superpipe.h index b761293fbc01..35c3cbf83fb5 100644 --- a/drivers/scsi/cxlflash/superpipe.h +++ b/drivers/scsi/cxlflash/superpipe.h @@ -96,7 +96,6 @@ struct ctx_info { struct llun_info **rht_lun; /* Mapping of RHT entries to LUNs */ u8 *rht_needs_ws; /* User-desired write-same function per RHTE */ - struct cxl_ioctl_start_work work; u64 ctxid; u64 irqs; /* Number of interrupts requested for context */ pid_t pid; |