Re: [PATCH] Use existing helper to convert "on/off" to boolean

From: Michal Hocko
Date: Fri Apr 29 2016 - 04:04:42 EST


On Fri 29-04-16 13:47:04, Minfei Huang wrote:
> It's more convenient to use existing function helper to convert string
> "on/off" to boolean.

But kstrtobool in linux-next only does "This routine returns 0 iff the
first character is one of 'Yy1Nn0'" so it doesn't know about on/off.
Or am I missing anything?

>
> Signed-off-by: Minfei Huang <mnghuan@xxxxxxxxx>
> ---
> lib/kstrtox.c | 2 +-
> mm/page_alloc.c | 9 +--------
> mm/page_poison.c | 8 +-------
> 3 files changed, 3 insertions(+), 16 deletions(-)
>
> diff --git a/lib/kstrtox.c b/lib/kstrtox.c
> index d8a5cf6..3c66fc4 100644
> --- a/lib/kstrtox.c
> +++ b/lib/kstrtox.c
> @@ -326,7 +326,7 @@ EXPORT_SYMBOL(kstrtos8);
> * @s: input string
> * @res: result
> *
> - * This routine returns 0 iff the first character is one of 'Yy1Nn0', or
> + * This routine returns 0 if the first character is one of 'Yy1Nn0', or
> * [oO][NnFf] for "on" and "off". Otherwise it will return -EINVAL. Value
> * pointed to by res is updated upon finding a match.
> */
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 59de90d..d31426d 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -513,14 +513,7 @@ static int __init early_debug_pagealloc(char *buf)
> {
> if (!buf)
> return -EINVAL;
> -
> - if (strcmp(buf, "on") == 0)
> - _debug_pagealloc_enabled = true;
> -
> - if (strcmp(buf, "off") == 0)
> - _debug_pagealloc_enabled = false;
> -
> - return 0;
> + return kstrtobool(buf, &_debug_pagealloc_enabled);
> }
> early_param("debug_pagealloc", early_debug_pagealloc);
>
> diff --git a/mm/page_poison.c b/mm/page_poison.c
> index 479e7ea..1eae5fa 100644
> --- a/mm/page_poison.c
> +++ b/mm/page_poison.c
> @@ -13,13 +13,7 @@ static int early_page_poison_param(char *buf)
> {
> if (!buf)
> return -EINVAL;
> -
> - if (strcmp(buf, "on") == 0)
> - want_page_poisoning = true;
> - else if (strcmp(buf, "off") == 0)
> - want_page_poisoning = false;
> -
> - return 0;
> + return strtobool(buf, &want_page_poisoning);
> }
> early_param("page_poison", early_page_poison_param);
>
> --
> 2.6.3
>

--
Michal Hocko
SUSE Labs