Re: [PATCH 2/2] mm: KSM: fix data type

From: Pavel Tatashin
Date: Thu Jul 15 2021 - 14:11:14 EST


On Thu, Jul 15, 2021 at 2:01 PM Zhansaya Bagdauletkyzy
<zhansayabagdaulet@xxxxxxxxx> 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@xxxxxxxxx>
> ---
> 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@xxxxxxxxxx>


> --
> 2.25.1
>