All of lore.kernel.org
 help / color / mirror / Atom feed
From: fan <nifan.cxl@gmail.com>
To: Dave Jiang <dave.jiang@intel.com>
Cc: linux-cxl@vger.kernel.org, alejandro.lucero-palau@amd.com,
	dan.j.williams@intel.com, ira.weiny@intel.com,
	vishal.l.verma@intel.com, alison.schofield@intel.com,
	Jonathan.Cameron@huawei.com, dave@stgolabs.net
Subject: Re: [PATCH 2/2] cxl: Convert cxl_internal_send_cmd() to use 'struct cxl_mailbox' as input
Date: Wed, 24 Jul 2024 15:08:45 -0700	[thread overview]
Message-ID: <ZqF7bePpnnGXmgw-@debian> (raw)
In-Reply-To: <20240724185649.2574627-3-dave.jiang@intel.com>

On Wed, Jul 24, 2024 at 11:55:17AM -0700, Dave Jiang wrote:
> With the CXL mailbox context split out, cxl_internal_send_cmd() can take
> 'struct cxl_mailbox' as an input parameter rather than
> 'struct memdev_dev_state'. Change input parameter for
> cxl_internal_send_cmd() and fixup all impacted call sites.
> 
> Signed-off-by: Dave Jiang <dave.jiang@intel.com>

Reviewed-by: Fan Ni <fan.ni@samsung.com>

> ---
>  drivers/cxl/core/mbox.c   | 38 ++++++++++++++++++++------------------
>  drivers/cxl/core/memdev.c | 23 +++++++++++++----------
>  drivers/cxl/cxlmem.h      |  2 +-
>  drivers/cxl/pci.c         |  6 ++++--
>  drivers/cxl/pmem.c        |  6 ++++--
>  drivers/cxl/security.c    | 23 ++++++++++++-----------
>  6 files changed, 54 insertions(+), 44 deletions(-)
> 
> diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c
> index 9501d2576ccd..b50f6db3b244 100644
> --- a/drivers/cxl/core/mbox.c
> +++ b/drivers/cxl/core/mbox.c
> @@ -225,7 +225,7 @@ static const char *cxl_mem_opcode_to_name(u16 opcode)
>  
>  /**
>   * cxl_internal_send_cmd() - Kernel internal interface to send a mailbox command
> - * @mds: The driver data for the operation
> + * @cxl_mbox: CXL mailbox context
>   * @mbox_cmd: initialized command to execute
>   *
>   * Context: Any context.
> @@ -241,10 +241,9 @@ static const char *cxl_mem_opcode_to_name(u16 opcode)
>   * error. While this distinction can be useful for commands from userspace, the
>   * kernel will only be able to use results when both are successful.
>   */
> -int cxl_internal_send_cmd(struct cxl_memdev_state *mds,
> +int cxl_internal_send_cmd(struct cxl_mailbox *cxl_mbox,
>  			  struct cxl_mbox_cmd *mbox_cmd)
>  {
> -	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	size_t out_size, min_out;
>  	int rc;
>  
> @@ -707,7 +706,7 @@ static int cxl_xfer_log(struct cxl_memdev_state *mds, uuid_t *uuid,
>  			.payload_out = out,
>  		};
>  
> -		rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +		rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  
>  		/*
>  		 * The output payload length that indicates the number
> @@ -796,7 +795,7 @@ static struct cxl_mbox_get_supported_logs *cxl_get_gsl(struct cxl_memdev_state *
>  		/* At least the record number field must be valid */
>  		.min_out = 2,
>  	};
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0) {
>  		kvfree(ret);
>  		return ERR_PTR(rc);
> @@ -988,7 +987,7 @@ static int cxl_clear_event_record(struct cxl_memdev_state *mds,
>  
>  		if (i == max_handles) {
>  			payload->nr_recs = i;
> -			rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +			rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  			if (rc)
>  				goto free_pl;
>  			i = 0;
> @@ -999,7 +998,7 @@ static int cxl_clear_event_record(struct cxl_memdev_state *mds,
>  	if (i) {
>  		payload->nr_recs = i;
>  		mbox_cmd.size_in = struct_size(payload, handles, i);
> -		rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +		rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  		if (rc)
>  			goto free_pl;
>  	}
> @@ -1036,7 +1035,7 @@ static void cxl_mem_get_records_log(struct cxl_memdev_state *mds,
>  			.min_out = struct_size(payload, records, 0),
>  		};
>  
> -		rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +		rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  		if (rc) {
>  			dev_err_ratelimited(dev,
>  				"Event log '%d': Failed to query event records : %d",
> @@ -1107,6 +1106,7 @@ EXPORT_SYMBOL_NS_GPL(cxl_mem_get_event_records, CXL);
>   */
>  static int cxl_mem_get_partition_info(struct cxl_memdev_state *mds)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	struct cxl_mbox_get_partition_info pi;
>  	struct cxl_mbox_cmd mbox_cmd;
>  	int rc;
> @@ -1116,7 +1116,7 @@ static int cxl_mem_get_partition_info(struct cxl_memdev_state *mds)
>  		.size_out = sizeof(pi),
>  		.payload_out = &pi,
>  	};
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc)
>  		return rc;
>  
> @@ -1143,6 +1143,7 @@ static int cxl_mem_get_partition_info(struct cxl_memdev_state *mds)
>   */
>  int cxl_dev_state_identify(struct cxl_memdev_state *mds)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	/* See CXL 2.0 Table 175 Identify Memory Device Output Payload */
>  	struct cxl_mbox_identify id;
>  	struct cxl_mbox_cmd mbox_cmd;
> @@ -1157,7 +1158,7 @@ int cxl_dev_state_identify(struct cxl_memdev_state *mds)
>  		.size_out = sizeof(id),
>  		.payload_out = &id,
>  	};
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0)
>  		return rc;
>  
> @@ -1185,6 +1186,7 @@ EXPORT_SYMBOL_NS_GPL(cxl_dev_state_identify, CXL);
>  
>  static int __cxl_mem_sanitize(struct cxl_memdev_state *mds, u16 cmd)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	int rc;
>  	u32 sec_out = 0;
>  	struct cxl_get_security_output {
> @@ -1196,14 +1198,13 @@ static int __cxl_mem_sanitize(struct cxl_memdev_state *mds, u16 cmd)
>  		.size_out = sizeof(out),
>  	};
>  	struct cxl_mbox_cmd mbox_cmd = { .opcode = cmd };
> -	struct cxl_dev_state *cxlds = &mds->cxlds;
>  
>  	if (cmd != CXL_MBOX_OP_SANITIZE && cmd != CXL_MBOX_OP_SECURE_ERASE)
>  		return -EINVAL;
>  
> -	rc = cxl_internal_send_cmd(mds, &sec_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &sec_cmd);
>  	if (rc < 0) {
> -		dev_err(cxlds->dev, "Failed to get security state : %d", rc);
> +		dev_err(cxl_mbox->host, "Failed to get security state : %d", rc);
>  		return rc;
>  	}
>  
> @@ -1220,9 +1221,9 @@ static int __cxl_mem_sanitize(struct cxl_memdev_state *mds, u16 cmd)
>  	    sec_out & CXL_PMEM_SEC_STATE_LOCKED)
>  		return -EINVAL;
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0) {
> -		dev_err(cxlds->dev, "Failed to sanitize device : %d", rc);
> +		dev_err(cxl_mbox->host, "Failed to sanitize device : %d", rc);
>  		return rc;
>  	}
>  
> @@ -1337,6 +1338,7 @@ EXPORT_SYMBOL_NS_GPL(cxl_mem_create_range_info, CXL);
>  
>  int cxl_set_timestamp(struct cxl_memdev_state *mds)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	struct cxl_mbox_cmd mbox_cmd;
>  	struct cxl_mbox_set_timestamp_in pi;
>  	int rc;
> @@ -1348,7 +1350,7 @@ int cxl_set_timestamp(struct cxl_memdev_state *mds)
>  		.payload_in = &pi,
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	/*
>  	 * Command is optional. Devices may have another way of providing
>  	 * a timestamp, or may return all 0s in timestamp fields.
> @@ -1365,7 +1367,7 @@ int cxl_mem_get_poison(struct cxl_memdev *cxlmd, u64 offset, u64 len,
>  		       struct cxl_region *cxlr)
>  {
>  	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
> -	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
> +	struct cxl_mailbox *cxl_mbox = cxlmd->cxlds->cxl_mbox;
>  	struct cxl_mbox_poison_out *po;
>  	struct cxl_mbox_poison_in pi;
>  	int nr_records = 0;
> @@ -1392,7 +1394,7 @@ int cxl_mem_get_poison(struct cxl_memdev *cxlmd, u64 offset, u64 len,
>  			.min_out = struct_size(po, record, 0),
>  		};
>  
> -		rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +		rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  		if (rc)
>  			break;
>  
> diff --git a/drivers/cxl/core/memdev.c b/drivers/cxl/core/memdev.c
> index 7c99f89740a9..df9c9a2335e6 100644
> --- a/drivers/cxl/core/memdev.c
> +++ b/drivers/cxl/core/memdev.c
> @@ -281,7 +281,7 @@ static int cxl_validate_poison_dpa(struct cxl_memdev *cxlmd, u64 dpa)
>  
>  int cxl_inject_poison(struct cxl_memdev *cxlmd, u64 dpa)
>  {
> -	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
> +	struct cxl_mailbox *cxl_mbox = cxlmd->cxlds->cxl_mbox;
>  	struct cxl_mbox_inject_poison inject;
>  	struct cxl_poison_record record;
>  	struct cxl_mbox_cmd mbox_cmd;
> @@ -311,13 +311,13 @@ int cxl_inject_poison(struct cxl_memdev *cxlmd, u64 dpa)
>  		.size_in = sizeof(inject),
>  		.payload_in = &inject,
>  	};
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc)
>  		goto out;
>  
>  	cxlr = cxl_dpa_to_region(cxlmd, dpa);
>  	if (cxlr)
> -		dev_warn_once(mds->cxlds.dev,
> +		dev_warn_once(cxl_mbox->host,
>  			      "poison inject dpa:%#llx region: %s\n", dpa,
>  			      dev_name(&cxlr->dev));
>  
> @@ -336,7 +336,7 @@ EXPORT_SYMBOL_NS_GPL(cxl_inject_poison, CXL);
>  
>  int cxl_clear_poison(struct cxl_memdev *cxlmd, u64 dpa)
>  {
> -	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
> +	struct cxl_mailbox *cxl_mbox = cxlmd->cxlds->cxl_mbox;
>  	struct cxl_mbox_clear_poison clear;
>  	struct cxl_poison_record record;
>  	struct cxl_mbox_cmd mbox_cmd;
> @@ -375,13 +375,13 @@ int cxl_clear_poison(struct cxl_memdev *cxlmd, u64 dpa)
>  		.payload_in = &clear,
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc)
>  		goto out;
>  
>  	cxlr = cxl_dpa_to_region(cxlmd, dpa);
>  	if (cxlr)
> -		dev_warn_once(mds->cxlds.dev,
> +		dev_warn_once(cxl_mbox->host,
>  			      "poison clear dpa:%#llx region: %s\n", dpa,
>  			      dev_name(&cxlr->dev));
>  
> @@ -718,6 +718,7 @@ static int cxl_memdev_release_file(struct inode *inode, struct file *file)
>   */
>  static int cxl_mem_get_fw_info(struct cxl_memdev_state *mds)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	struct cxl_mbox_get_fw_info info;
>  	struct cxl_mbox_cmd mbox_cmd;
>  	int rc;
> @@ -728,7 +729,7 @@ static int cxl_mem_get_fw_info(struct cxl_memdev_state *mds)
>  		.payload_out = &info,
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0)
>  		return rc;
>  
> @@ -752,6 +753,7 @@ static int cxl_mem_get_fw_info(struct cxl_memdev_state *mds)
>   */
>  static int cxl_mem_activate_fw(struct cxl_memdev_state *mds, int slot)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	struct cxl_mbox_activate_fw activate;
>  	struct cxl_mbox_cmd mbox_cmd;
>  
> @@ -768,7 +770,7 @@ static int cxl_mem_activate_fw(struct cxl_memdev_state *mds, int slot)
>  	activate.action = CXL_FW_ACTIVATE_OFFLINE;
>  	activate.slot = slot;
>  
> -	return cxl_internal_send_cmd(mds, &mbox_cmd);
> +	return cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  }
>  
>  /**
> @@ -783,6 +785,7 @@ static int cxl_mem_activate_fw(struct cxl_memdev_state *mds, int slot)
>   */
>  static int cxl_mem_abort_fw_xfer(struct cxl_memdev_state *mds)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	struct cxl_mbox_transfer_fw *transfer;
>  	struct cxl_mbox_cmd mbox_cmd;
>  	int rc;
> @@ -802,7 +805,7 @@ static int cxl_mem_abort_fw_xfer(struct cxl_memdev_state *mds)
>  
>  	transfer->action = CXL_FW_TRANSFER_ACTION_ABORT;
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	kfree(transfer);
>  	return rc;
>  }
> @@ -933,7 +936,7 @@ static enum fw_upload_err cxl_fw_write(struct fw_upload *fwl, const u8 *data,
>  		.poll_count = 30,
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0) {
>  		rc = FW_UPLOAD_ERR_RW_ERROR;
>  		goto out_free;
> diff --git a/drivers/cxl/cxlmem.h b/drivers/cxl/cxlmem.h
> index 17e83a2cf1be..645a2f878120 100644
> --- a/drivers/cxl/cxlmem.h
> +++ b/drivers/cxl/cxlmem.h
> @@ -812,7 +812,7 @@ enum {
>  	CXL_PMEM_SEC_PASS_USER,
>  };
>  
> -int cxl_internal_send_cmd(struct cxl_memdev_state *mds,
> +int cxl_internal_send_cmd(struct cxl_mailbox *cxl_mbox,
>  			  struct cxl_mbox_cmd *cmd);
>  int cxl_dev_state_identify(struct cxl_memdev_state *mds);
>  int cxl_await_media_ready(struct cxl_dev_state *cxlds);
> diff --git a/drivers/cxl/pci.c b/drivers/cxl/pci.c
> index bd8ee14a7926..511a54335784 100644
> --- a/drivers/cxl/pci.c
> +++ b/drivers/cxl/pci.c
> @@ -661,6 +661,7 @@ static int cxl_event_req_irq(struct cxl_dev_state *cxlds, u8 setting)
>  static int cxl_event_get_int_policy(struct cxl_memdev_state *mds,
>  				    struct cxl_event_interrupt_policy *policy)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	struct cxl_mbox_cmd mbox_cmd = {
>  		.opcode = CXL_MBOX_OP_GET_EVT_INT_POLICY,
>  		.payload_out = policy,
> @@ -668,7 +669,7 @@ static int cxl_event_get_int_policy(struct cxl_memdev_state *mds,
>  	};
>  	int rc;
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0)
>  		dev_err(mds->cxlds.dev,
>  			"Failed to get event interrupt policy : %d", rc);
> @@ -679,6 +680,7 @@ static int cxl_event_get_int_policy(struct cxl_memdev_state *mds,
>  static int cxl_event_config_msgnums(struct cxl_memdev_state *mds,
>  				    struct cxl_event_interrupt_policy *policy)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	struct cxl_mbox_cmd mbox_cmd;
>  	int rc;
>  
> @@ -695,7 +697,7 @@ static int cxl_event_config_msgnums(struct cxl_memdev_state *mds,
>  		.size_in = sizeof(*policy),
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0) {
>  		dev_err(mds->cxlds.dev, "Failed to set event interrupt policy : %d",
>  			rc);
> diff --git a/drivers/cxl/pmem.c b/drivers/cxl/pmem.c
> index 12e68b194820..946cc7af423b 100644
> --- a/drivers/cxl/pmem.c
> +++ b/drivers/cxl/pmem.c
> @@ -123,6 +123,7 @@ static int cxl_pmem_get_config_data(struct cxl_memdev_state *mds,
>  				    struct nd_cmd_get_config_data_hdr *cmd,
>  				    unsigned int buf_len)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	struct cxl_mbox_get_lsa get_lsa;
>  	struct cxl_mbox_cmd mbox_cmd;
>  	int rc;
> @@ -144,7 +145,7 @@ static int cxl_pmem_get_config_data(struct cxl_memdev_state *mds,
>  		.payload_out = cmd->out_buf,
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	cmd->status = 0;
>  
>  	return rc;
> @@ -154,6 +155,7 @@ static int cxl_pmem_set_config_data(struct cxl_memdev_state *mds,
>  				    struct nd_cmd_set_config_hdr *cmd,
>  				    unsigned int buf_len)
>  {
> +	struct cxl_mailbox *cxl_mbox = mds->cxlds.cxl_mbox;
>  	struct cxl_mbox_set_lsa *set_lsa;
>  	struct cxl_mbox_cmd mbox_cmd;
>  	int rc;
> @@ -180,7 +182,7 @@ static int cxl_pmem_set_config_data(struct cxl_memdev_state *mds,
>  		.size_in = struct_size(set_lsa, data, cmd->in_length),
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  
>  	/*
>  	 * Set "firmware" status (4-packed bytes at the end of the input
> diff --git a/drivers/cxl/security.c b/drivers/cxl/security.c
> index 21856a3f408e..38e6e5d97097 100644
> --- a/drivers/cxl/security.c
> +++ b/drivers/cxl/security.c
> @@ -14,6 +14,7 @@ static unsigned long cxl_pmem_get_security_flags(struct nvdimm *nvdimm,
>  {
>  	struct cxl_nvdimm *cxl_nvd = nvdimm_provider_data(nvdimm);
>  	struct cxl_memdev *cxlmd = cxl_nvd->cxlmd;
> +	struct cxl_mailbox *cxl_mbox = cxlmd->cxlds->cxl_mbox;
>  	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
>  	unsigned long security_flags = 0;
>  	struct cxl_get_security_output {
> @@ -29,7 +30,7 @@ static unsigned long cxl_pmem_get_security_flags(struct nvdimm *nvdimm,
>  		.payload_out = &out,
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0)
>  		return 0;
>  
> @@ -70,7 +71,7 @@ static int cxl_pmem_security_change_key(struct nvdimm *nvdimm,
>  {
>  	struct cxl_nvdimm *cxl_nvd = nvdimm_provider_data(nvdimm);
>  	struct cxl_memdev *cxlmd = cxl_nvd->cxlmd;
> -	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
> +	struct cxl_mailbox *cxl_mbox = cxlmd->cxlds->cxl_mbox;
>  	struct cxl_mbox_cmd mbox_cmd;
>  	struct cxl_set_pass set_pass;
>  
> @@ -87,7 +88,7 @@ static int cxl_pmem_security_change_key(struct nvdimm *nvdimm,
>  		.payload_in = &set_pass,
>  	};
>  
> -	return cxl_internal_send_cmd(mds, &mbox_cmd);
> +	return cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  }
>  
>  static int __cxl_pmem_security_disable(struct nvdimm *nvdimm,
> @@ -96,7 +97,7 @@ static int __cxl_pmem_security_disable(struct nvdimm *nvdimm,
>  {
>  	struct cxl_nvdimm *cxl_nvd = nvdimm_provider_data(nvdimm);
>  	struct cxl_memdev *cxlmd = cxl_nvd->cxlmd;
> -	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
> +	struct cxl_mailbox *cxl_mbox = cxlmd->cxlds->cxl_mbox;
>  	struct cxl_disable_pass dis_pass;
>  	struct cxl_mbox_cmd mbox_cmd;
>  
> @@ -112,7 +113,7 @@ static int __cxl_pmem_security_disable(struct nvdimm *nvdimm,
>  		.payload_in = &dis_pass,
>  	};
>  
> -	return cxl_internal_send_cmd(mds, &mbox_cmd);
> +	return cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  }
>  
>  static int cxl_pmem_security_disable(struct nvdimm *nvdimm,
> @@ -131,12 +132,12 @@ static int cxl_pmem_security_freeze(struct nvdimm *nvdimm)
>  {
>  	struct cxl_nvdimm *cxl_nvd = nvdimm_provider_data(nvdimm);
>  	struct cxl_memdev *cxlmd = cxl_nvd->cxlmd;
> -	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
> +	struct cxl_mailbox *cxl_mbox = cxlmd->cxlds->cxl_mbox;
>  	struct cxl_mbox_cmd mbox_cmd = {
>  		.opcode = CXL_MBOX_OP_FREEZE_SECURITY,
>  	};
>  
> -	return cxl_internal_send_cmd(mds, &mbox_cmd);
> +	return cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  }
>  
>  static int cxl_pmem_security_unlock(struct nvdimm *nvdimm,
> @@ -144,7 +145,7 @@ static int cxl_pmem_security_unlock(struct nvdimm *nvdimm,
>  {
>  	struct cxl_nvdimm *cxl_nvd = nvdimm_provider_data(nvdimm);
>  	struct cxl_memdev *cxlmd = cxl_nvd->cxlmd;
> -	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
> +	struct cxl_mailbox *cxl_mbox = cxlmd->cxlds->cxl_mbox;
>  	u8 pass[NVDIMM_PASSPHRASE_LEN];
>  	struct cxl_mbox_cmd mbox_cmd;
>  	int rc;
> @@ -156,7 +157,7 @@ static int cxl_pmem_security_unlock(struct nvdimm *nvdimm,
>  		.payload_in = pass,
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0)
>  		return rc;
>  
> @@ -169,7 +170,7 @@ static int cxl_pmem_security_passphrase_erase(struct nvdimm *nvdimm,
>  {
>  	struct cxl_nvdimm *cxl_nvd = nvdimm_provider_data(nvdimm);
>  	struct cxl_memdev *cxlmd = cxl_nvd->cxlmd;
> -	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
> +	struct cxl_mailbox *cxl_mbox = cxlmd->cxlds->cxl_mbox;
>  	struct cxl_mbox_cmd mbox_cmd;
>  	struct cxl_pass_erase erase;
>  	int rc;
> @@ -185,7 +186,7 @@ static int cxl_pmem_security_passphrase_erase(struct nvdimm *nvdimm,
>  		.payload_in = &erase,
>  	};
>  
> -	rc = cxl_internal_send_cmd(mds, &mbox_cmd);
> +	rc = cxl_internal_send_cmd(cxl_mbox, &mbox_cmd);
>  	if (rc < 0)
>  		return rc;
>  
> -- 
> 2.45.2
> 

  reply	other threads:[~2024-07-24 22:08 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-24 18:55 [PATCH 0/2] cxl: Pull out mailbox bits to be independent of cxl_dev_state Dave Jiang
2024-07-24 18:55 ` [PATCH 1/2] cxl: Move mailbox related bits to the same context Dave Jiang
2024-07-24 22:02   ` fan
2024-08-13  6:59     ` Alejandro Lucero Palau
2024-08-13 15:38       ` Dave Jiang
2024-08-15 16:57   ` Jonathan Cameron
2024-08-15 17:10     ` Dave Jiang
2024-08-27 15:27       ` Jonathan Cameron
2024-08-27 21:48         ` Dave Jiang
2024-07-24 18:55 ` [PATCH 2/2] cxl: Convert cxl_internal_send_cmd() to use 'struct cxl_mailbox' as input Dave Jiang
2024-07-24 22:08   ` fan [this message]
2024-08-15 17:00   ` Jonathan Cameron
2024-08-13  7:11 ` [PATCH 0/2] cxl: Pull out mailbox bits to be independent of cxl_dev_state Alejandro Lucero Palau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZqF7bePpnnGXmgw-@debian \
    --to=nifan.cxl@gmail.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=alejandro.lucero-palau@amd.com \
    --cc=alison.schofield@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dave@stgolabs.net \
    --cc=ira.weiny@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=vishal.l.verma@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.