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> --- 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; } -- 2.29.2