@@ -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;
}
Previously, the extra parameters will be ignored quietly, which is a bit weird and confusing. [0] $ 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. [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 Cc: Fan Ni <fan.ni@samsung.com> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com> --- daxctl/device.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)