On 7/8/24 11:06 PM, Bao D. Nguyen wrote:
+static int uic_cmd_timeout_set(const char *val, const struct kernel_param *kp) +{ + unsigned int n; + int ret; + + ret = kstrtou32(val, 0, &n); + if (ret != 0 || n < UIC_CMD_TIMEOUT_DEFAULT || n > UIC_CMD_TIMEOUT_MAX) + return -EINVAL; + + return param_set_int(val, kp); +}
The above code converts 'val' twice to an integer: a first time by calling kstrtou32() and a second time by calling param_set_int(). Please remove one of the two string-to-integer conversions, e.g. by changing "param_set_int(val, kp)" into "uic_cmd_timeout = n" or *(unsigned int *)kp->arg = n". Thanks, Bart.