The initial change from sscanf to kstrtouint broke backward
compatbility by using a base of "0" in the kstrtouint call.
This allowed for entering decimal, hexadecimal or octal as
input where previously the sscanf always interpreted the input
as hexadecimal. Additionally, -EIO was returned on error prior
to this change and now it is whatever the error value that is
returned by kstrtouint.
Change the base value of the kstrtouint from 0 to 16 and return
-EIO on error.
Signed-off-by: Tom Lendacky <[email protected]>
Reported-by: Joe Perches <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
return len;
workarea[len] = '\0';
- ret = kstrtouint(workarea, 0, value);
+ ret = kstrtouint(workarea, 16, value);
if (ret)
- return ret;
+ return -EIO;
return len;
}