Message ID | 3610f5373bb12ea04e025bafbf8350f75c0dbf4b.1626371112.git.zhansayabagdaulet@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: KSM: fix data types | expand |
On Thu, Jul 15, 2021 at 2:01 PM Zhansaya Bagdauletkyzy <zhansayabagdaulet@gmail.com> wrote: > > ksm_stable_node_chains_prune_millisecs is declared as int, but in > stable__node_chains_prune_millisecs_store(), it can store values up to > UINT_MAX. Change the variable type to unsigned int. > > Signed-off-by: Zhansaya Bagdauletkyzy <zhansayabagdaulet@gmail.com> > --- > mm/ksm.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/mm/ksm.c b/mm/ksm.c > index 057d0c245bf4..2e4bd7662e52 100644 > --- a/mm/ksm.c > +++ b/mm/ksm.c > @@ -259,7 +259,7 @@ static unsigned long ksm_stable_node_chains; > static unsigned long ksm_stable_node_dups; > > /* Delay in pruning stale stable_node_dups in the stable_node_chains */ > -static int ksm_stable_node_chains_prune_millisecs = 2000; > +static unsigned int ksm_stable_node_chains_prune_millisecs = 2000; > > /* Maximum number of page slots sharing a stable node */ > static int ksm_max_page_sharing = 256; > @@ -3105,11 +3105,11 @@ stable_node_chains_prune_millisecs_store(struct kobject *kobj, > struct kobj_attribute *attr, > const char *buf, size_t count) > { > - unsigned long msecs; > + unsigned int msecs; > int err; > > - err = kstrtoul(buf, 10, &msecs); > - if (err || msecs > UINT_MAX) > + err = kstrtouint(buf, 10, &msecs); > + if (err) > return -EINVAL; > > ksm_stable_node_chains_prune_millisecs = msecs; LGTM, but I would merge the two patches together. They both update types of sysfs tunnables in the same file. Reviewed-by: Pavel Tatashin <pasha.tatashin@soleen.com> > -- > 2.25.1 >
On Thu, Jul 15, 2021 at 02:10:33PM -0400, Pavel Tatashin wrote: > On Thu, Jul 15, 2021 at 2:01 PM Zhansaya Bagdauletkyzy > <zhansayabagdaulet@gmail.com> wrote: > > > > ksm_stable_node_chains_prune_millisecs is declared as int, but in > > stable__node_chains_prune_millisecs_store(), it can store values up to > > UINT_MAX. Change the variable type to unsigned int. > > > > Signed-off-by: Zhansaya Bagdauletkyzy <zhansayabagdaulet@gmail.com> > > --- > > mm/ksm.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/mm/ksm.c b/mm/ksm.c > > index 057d0c245bf4..2e4bd7662e52 100644 > > --- a/mm/ksm.c > > +++ b/mm/ksm.c > > @@ -259,7 +259,7 @@ static unsigned long ksm_stable_node_chains; > > static unsigned long ksm_stable_node_dups; > > > > /* Delay in pruning stale stable_node_dups in the stable_node_chains */ > > -static int ksm_stable_node_chains_prune_millisecs = 2000; > > +static unsigned int ksm_stable_node_chains_prune_millisecs = 2000; > > > > /* Maximum number of page slots sharing a stable node */ > > static int ksm_max_page_sharing = 256; > > @@ -3105,11 +3105,11 @@ stable_node_chains_prune_millisecs_store(struct kobject *kobj, > > struct kobj_attribute *attr, > > const char *buf, size_t count) > > { > > - unsigned long msecs; > > + unsigned int msecs; > > int err; > > > > - err = kstrtoul(buf, 10, &msecs); > > - if (err || msecs > UINT_MAX) > > + err = kstrtouint(buf, 10, &msecs); > > + if (err) > > return -EINVAL; > > > > ksm_stable_node_chains_prune_millisecs = msecs; > > LGTM, but I would merge the two patches together. They both update > types of sysfs tunnables in the same file. Ok, I'll send v2 as a single patch. Thanks, Zhansaya
diff --git a/mm/ksm.c b/mm/ksm.c index 057d0c245bf4..2e4bd7662e52 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -259,7 +259,7 @@ static unsigned long ksm_stable_node_chains; static unsigned long ksm_stable_node_dups; /* Delay in pruning stale stable_node_dups in the stable_node_chains */ -static int ksm_stable_node_chains_prune_millisecs = 2000; +static unsigned int ksm_stable_node_chains_prune_millisecs = 2000; /* Maximum number of page slots sharing a stable node */ static int ksm_max_page_sharing = 256; @@ -3105,11 +3105,11 @@ stable_node_chains_prune_millisecs_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { - unsigned long msecs; + unsigned int msecs; int err; - err = kstrtoul(buf, 10, &msecs); - if (err || msecs > UINT_MAX) + err = kstrtouint(buf, 10, &msecs); + if (err) return -EINVAL; ksm_stable_node_chains_prune_millisecs = msecs;
ksm_stable_node_chains_prune_millisecs is declared as int, but in stable__node_chains_prune_millisecs_store(), it can store values up to UINT_MAX. Change the variable type to unsigned int. Signed-off-by: Zhansaya Bagdauletkyzy <zhansayabagdaulet@gmail.com> --- mm/ksm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)