All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: <alison.schofield@intel.com>
Cc: Ben Widawsky <ben.widawsky@intel.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Ira Weiny <ira.weiny@intel.com>,
	Vishal Verma <vishal.l.verma@intel.com>,
	<linux-cxl@vger.kernel.org>
Subject: Re: [PATCH v3 4/9] cxl/mbox: Construct a users cxl_mbox_cmd in the validation path
Date: Fri, 25 Mar 2022 10:54:13 +0000	[thread overview]
Message-ID: <20220325105413.00002ac5@huawei.com> (raw)
In-Reply-To: <20220324011126.1144504-5-alison.schofield@intel.com>

On Wed, 23 Mar 2022 18:11:21 -0700
alison.schofield@intel.com wrote:

> From: Alison Schofield <alison.schofield@intel.com>
> 
> Since the validation of a mailbox command is done as it is built,

Perhaps reword this.  I agree it's desirable to have validation
and build together but this says 'is done' and it wasn't done until
this patch.

> move that work out of the dispatch path and into the validation
> path.
> 
> This is a step in refactoring the handling of user space mailbox
> commands. The intent is to have all the validation work originate
> in cxl_validate_cmd_from_user().
> 
> Signed-off-by: Alison Schofield <alison.schofield@intel.com>

Sometimes things can get broken into too many baby steps!

This change looks odd until patch 7 given info is passed twice
in mbox_cmd and out_cmd.  Maybe note in the patch description that
out_cmd will be brought local in a few patches time?
Probably not worth working out how to reorder and squish the patches
to make this easier to review.

Otherwise, one trivial inline.


Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> ---
>  drivers/cxl/core/mbox.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c
> index d4233cfb2f99..205e671307c3 100644
> --- a/drivers/cxl/core/mbox.c
> +++ b/drivers/cxl/core/mbox.c
> @@ -324,6 +324,7 @@ static int cxl_to_mem_cmd(struct cxl_dev_state *cxlds,
>   * @cxlds: The device data for the operation
>   * @send_cmd: &struct cxl_send_command copied in from userspace.
>   * @out_cmd: Sanitized and populated &struct cxl_mem_command.
> + * @mbox_cmd: Sanitized and populated &struct cxl_mbox_cmd.
>   *
>   * Return:
>   *  * %0	- @out_cmd is ready to send.
> @@ -340,7 +341,8 @@ static int cxl_to_mem_cmd(struct cxl_dev_state *cxlds,
>   */
>  static int cxl_validate_cmd_from_user(struct cxl_dev_state *cxlds,
>  				      const struct cxl_send_command *send_cmd,
> -				      struct cxl_mem_command *out_cmd)
> +				      struct cxl_mem_command *out_cmd,
> +				      struct cxl_mbox_cmd *mbox_cmd)
>  {
>  	int rc;
>  
> @@ -361,6 +363,14 @@ static int cxl_validate_cmd_from_user(struct cxl_dev_state *cxlds,
>  	else
>  		rc = cxl_to_mem_cmd(cxlds, send_cmd, out_cmd);
>  
> +	if (rc)
> +		return rc;
> +
> +	/* Sanitize and construct a cxl_mbox_cmd */
> +	rc = cxl_to_mbox_cmd(cxlds, mbox_cmd, out_cmd->opcode,
> +			     out_cmd->info.size_in, out_cmd->info.size_out,
> +			     send_cmd->in.payload);
> +
return cxl_to_mbox_cmd()....

>  	return rc;
>  }
>  
> @@ -478,6 +488,7 @@ int cxl_send_cmd(struct cxl_memdev *cxlmd, struct cxl_send_command __user *s)
>  	struct device *dev = &cxlmd->dev;
>  	struct cxl_send_command send;
>  	struct cxl_mem_command c;
> +	struct cxl_mbox_cmd mbox_cmd;
>  	int rc;
>  
>  	dev_dbg(dev, "Send IOCTL\n");
> @@ -485,7 +496,7 @@ int cxl_send_cmd(struct cxl_memdev *cxlmd, struct cxl_send_command __user *s)
>  	if (copy_from_user(&send, s, sizeof(send)))
>  		return -EFAULT;
>  
> -	rc = cxl_validate_cmd_from_user(cxlmd->cxlds, &send, &c);
> +	rc = cxl_validate_cmd_from_user(cxlmd->cxlds, &send, &c, &mbox_cmd);
>  	if (rc)
>  		return rc;
>  


  reply	other threads:[~2022-03-25 10:54 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-24  1:11 [PATCH v3 0/9] Do not allow set-partition immediate mode alison.schofield
2022-03-24  1:11 ` [PATCH v3 1/9] cxl/mbox: Move cxl_mem_command construction to helper funcs alison.schofield
2022-03-25 10:27   ` Jonathan Cameron
2022-03-26  0:01     ` Alison Schofield
2022-03-24  1:11 ` [PATCH v3 2/9] cxl/mbox: Move raw command warning to raw command validation alison.schofield
2022-03-25 10:32   ` Jonathan Cameron
2022-03-24  1:11 ` [PATCH v3 3/9] cxl/mbox: Move build of user mailbox cmd to a helper function alison.schofield
2022-03-25 10:43   ` Jonathan Cameron
2022-03-24  1:11 ` [PATCH v3 4/9] cxl/mbox: Construct a users cxl_mbox_cmd in the validation path alison.schofield
2022-03-25 10:54   ` Jonathan Cameron [this message]
2022-03-26  0:37     ` Alison Schofield
2022-03-24  1:11 ` [PATCH v3 5/9] cxl/mbox: Remove dependency on cxl_mem_command for a debug msg alison.schofield
2022-03-25 10:56   ` Jonathan Cameron
2022-03-26  0:26     ` Alison Schofield
2022-03-24  1:11 ` [PATCH v3 6/9] cxl/mbox: Make handle_mailbox_cmd_from_user() use a mbox param alison.schofield
2022-03-25 11:04   ` Jonathan Cameron
2022-03-26  0:25     ` Alison Schofield
2022-03-29 10:50       ` Jonathan Cameron
2022-03-24  1:11 ` [PATCH v3 7/9] cxl/mbox: Move cxl_mem_command param to a local variable alison.schofield
2022-03-25 11:10   ` Jonathan Cameron
2022-03-24  1:11 ` [PATCH v3 8/9] cxl/mbox: Block immediate mode in SET_PARTITION_INFO command alison.schofield
2022-03-25 11:18   ` Jonathan Cameron
2022-03-26  0:31     ` Alison Schofield
2022-03-24  1:11 ` [PATCH v3 9/9] cxl/pmem: Remove CXL SET_PARTITION_INFO from exclusive_cmds list alison.schofield
2022-03-25 11:19   ` Jonathan Cameron
2022-03-25 10:34 ` [PATCH v3 0/9] Do not allow set-partition immediate mode Jonathan Cameron
2022-03-30  1:24   ` Dan Williams
2022-03-30 15:05     ` Jonathan Cameron

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=20220325105413.00002ac5@huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=alison.schofield@intel.com \
    --cc=ben.widawsky@intel.com \
    --cc=dan.j.williams@intel.com \
    --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.