Linux CXL
 help / color / mirror / Atom feed
From: Alison Schofield <alison.schofield@intel.com>
To: Li Zhijian <lizhijian@fujitsu.com>
Cc: nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org,
	Fan Ni <fan.ni@samsung.com>
Subject: Re: [ndctl PATCH v2 1/2] daxctl: Fix create-device parameters parsing
Date: Fri, 31 May 2024 14:32:41 -0700	[thread overview]
Message-ID: <ZlpB+SYykp2gpAcS@aschofie-mobl2> (raw)
In-Reply-To: <20240531062959.881772-1-lizhijian@fujitsu.com>

On Fri, May 31, 2024 at 02:29:58PM +0800, Li Zhijian wrote:
> Previously, the extra parameters will be ignored quietly, which is a bit
> weird and confusing.

It's just wrong. There is code to catch extra params, but it's being
skipped because of the index setting that you mention below. Suggest
referencing the incorrect index is causing the extra params to be
ignored.

Suggest commit msg of:
daxctl: Fail create-device if extra parameters are present


> $ daxctl create-device region0
> [
>   {
>     "chardev":"dax0.1",
>     "size":268435456,
>     "target_node":1,
>     "align":2097152,
>     "mode":"devdax"
>   }
> ]
> created 1 device
> 
> where above user would want to specify '-r region0'.
> 
> Check extra parameters starting from index 0 to ensure no extra parameters
> are specified for create-device.
> 
> Cc: Fan Ni <fan.ni@samsung.com>
> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
> ---
> V2:
> Remove the external link[0] in case it get disappeared in the future.
> [0] https://github.com/moking/moking.github.io/wiki/cxl%E2%80%90test%E2%80%90tool:-A-tool-to-ease-CXL-test-with-QEMU-setup%E2%80%90%E2%80%90Using-DCD-test-as-an-example#convert-dcd-memory-to-system-ram
> ---
>  daxctl/device.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/daxctl/device.c b/daxctl/device.c
> index 839134301409..ffabd6cf5707 100644
> --- a/daxctl/device.c
> +++ b/daxctl/device.c
> @@ -363,7 +363,8 @@ static const char *parse_device_options(int argc, const char **argv,
>  		NULL
>  	};
>  	unsigned long long units = 1;
> -	int i, rc = 0;
> +	int rc = 0;
> +	int i = action == ACTION_CREATE ? 0 : 1;

This confuses me because at this point I don't know what 'i' will be
used for.  How about moving the setting near the usage below -

>  	char *device = NULL;
>  
>  	argc = parse_options(argc, argv, options, u, 0);
> @@ -402,7 +403,7 @@ static const char *parse_device_options(int argc, const char **argv,
>  			action_string);
>  		rc = -EINVAL;
>  	}
> -	for (i = 1; i < argc; i++) {
> +	for (; i < argc; i++) {
>  		fprintf(stderr, "unknown extra parameter \"%s\"\n", argv[i]);
>  		rc = -EINVAL;
>  	}

Something like this:

diff --git a/daxctl/device.c b/daxctl/device.c
index 14d62148c58a..6c0758101c4a 100644
--- a/daxctl/device.c
+++ b/daxctl/device.c
@@ -402,6 +402,8 @@ static const char *parse_device_options(int argc, const char **argv,
                        action_string);
                rc = -EINVAL;
        }
+       /* ACTION_CREATE expects 0 parameters */
+       i = action == ACTION_CREATE ? 0 : 1;
        for (i = 1; i < argc; i++) {
                fprintf(stderr, "unknown extra parameter \"%s\"\n", argv[i]);
                rc = -EINVAL;






> -- 
> 2.29.2
> 
> 

  parent reply	other threads:[~2024-05-31 21:32 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-31  6:29 [ndctl PATCH v2 1/2] daxctl: Fix create-device parameters parsing Li Zhijian
2024-05-31  6:29 ` [ndctl PATCH v2 2/2] daxctl: Remove unimplemented create-device options Li Zhijian
2024-05-31 20:03   ` Verma, Vishal L
2024-05-31 20:37   ` Dave Jiang
2024-05-31 21:43   ` Alison Schofield
2024-06-03  1:26     ` Zhijian Li (Fujitsu)
2024-05-31 20:02 ` [ndctl PATCH v2 1/2] daxctl: Fix create-device parameters parsing Verma, Vishal L
2024-05-31 20:36 ` Dave Jiang
2024-05-31 21:32 ` Alison Schofield [this message]
2024-06-03  1:12   ` Zhijian Li (Fujitsu)

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=ZlpB+SYykp2gpAcS@aschofie-mobl2 \
    --to=alison.schofield@intel.com \
    --cc=fan.ni@samsung.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=lizhijian@fujitsu.com \
    --cc=nvdimm@lists.linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox