|
@@ -1640,7 +1640,12 @@ static ssize_t set_attr_rdpmc(struct device *cdev,
|
|
|
struct device_attribute *attr,
|
|
|
const char *buf, size_t count)
|
|
|
{
|
|
|
- unsigned long val = simple_strtoul(buf, NULL, 0);
|
|
|
+ unsigned long val;
|
|
|
+ ssize_t ret;
|
|
|
+
|
|
|
+ ret = kstrtoul(buf, 0, &val);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
|
|
|
if (!!val != !!x86_pmu.attr_rdpmc) {
|
|
|
x86_pmu.attr_rdpmc = !!val;
|