On 5/30/24 11:29 PM, Li Zhijian wrote:
> Previously, the extra parameters will be ignored quietly, which is a bit
> weird and confusing.
> $ 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...@samsung.com>
> Signed-off-by: Li Zhijian <lizhij...@fujitsu.com>

Reviewed-by: Dave Jiang <dave.ji...@intel.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;
>       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;
>       }

Reply via email to