mirror of https://gitee.com/openkylin/linux.git
x86, mce: use strict_strtoull
Use strict_strtoull instead of simple_strtoull. Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Cc: Andi Kleen <andi@firstfloor.org> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
8780e8e0f6
commit
9319cec8c1
|
@ -1059,18 +1059,17 @@ static ssize_t show_bank(struct sys_device *s, struct sysdev_attribute *attr,
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t set_bank(struct sys_device *s, struct sysdev_attribute *attr,
|
static ssize_t set_bank(struct sys_device *s, struct sysdev_attribute *attr,
|
||||||
const char *buf, size_t siz)
|
const char *buf, size_t size)
|
||||||
{
|
{
|
||||||
char *end;
|
u64 new;
|
||||||
u64 new = simple_strtoull(buf, &end, 0);
|
|
||||||
|
|
||||||
if (end == buf)
|
if (strict_strtoull(buf, 0, &new) < 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
bank[attr - bank_attrs] = new;
|
bank[attr - bank_attrs] = new;
|
||||||
mce_restart();
|
mce_restart();
|
||||||
|
|
||||||
return end-buf;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t
|
||||||
|
|
|
@ -269,14 +269,12 @@ SHOW_FIELDS(interrupt_enable)
|
||||||
SHOW_FIELDS(threshold_limit)
|
SHOW_FIELDS(threshold_limit)
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t
|
||||||
store_interrupt_enable(struct threshold_block *b, const char *buf, size_t count)
|
store_interrupt_enable(struct threshold_block *b, const char *buf, size_t size)
|
||||||
{
|
{
|
||||||
struct thresh_restart tr;
|
struct thresh_restart tr;
|
||||||
unsigned long new;
|
unsigned long new;
|
||||||
char *end;
|
|
||||||
|
|
||||||
new = simple_strtoul(buf, &end, 0);
|
if (strict_strtoul(buf, 0, &new) < 0)
|
||||||
if (end == buf)
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
b->interrupt_enable = !!new;
|
b->interrupt_enable = !!new;
|
||||||
|
@ -287,18 +285,16 @@ store_interrupt_enable(struct threshold_block *b, const char *buf, size_t count)
|
||||||
|
|
||||||
smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
|
smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
|
||||||
|
|
||||||
return end - buf;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t
|
||||||
store_threshold_limit(struct threshold_block *b, const char *buf, size_t count)
|
store_threshold_limit(struct threshold_block *b, const char *buf, size_t size)
|
||||||
{
|
{
|
||||||
struct thresh_restart tr;
|
struct thresh_restart tr;
|
||||||
unsigned long new;
|
unsigned long new;
|
||||||
char *end;
|
|
||||||
|
|
||||||
new = simple_strtoul(buf, &end, 0);
|
if (strict_strtoul(buf, 0, &new) < 0)
|
||||||
if (end == buf)
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (new > THRESHOLD_MAX)
|
if (new > THRESHOLD_MAX)
|
||||||
|
@ -313,7 +309,7 @@ store_threshold_limit(struct threshold_block *b, const char *buf, size_t count)
|
||||||
|
|
||||||
smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
|
smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
|
||||||
|
|
||||||
return end - buf;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct threshold_block_cross_cpu {
|
struct threshold_block_cross_cpu {
|
||||||
|
|
Loading…
Reference in New Issue