diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 11f0714273ab..b152e0a30a2b 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -592,9 +592,9 @@ static int do_proc_douintvec_conv(unsigned long *lvalp, if (write) { if (*lvalp > UINT_MAX) return -EINVAL; - *valp = *lvalp; + WRITE_ONCE(*valp, *lvalp); } else { - unsigned int val = *valp; + unsigned int val = READ_ONCE(*valp); *lvalp = (unsigned long)val; } return 0;