Re: [PATCH 21/30] mm: Use kstrtobool() instead of strtobool()

From: Pasha Tatashin
Date: Fri Nov 04 2022 - 22:59:06 EST


On Tue, Nov 1, 2022 at 5:15 PM Christophe JAILLET
<christophe.jaillet@xxxxxxxxxx> wrote:
>
> strtobool() is the same as kstrtobool().
> However, the latter is more used within the kernel.
>
> In order to remove strtobool() and slightly simplify kstrtox.h, switch to
> the other function name.
>
> While at it, include the corresponding header file (<linux/kstrtox.h>)
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
> ---
> This patch is part of a serie that axes all usages of strtobool().
> Each patch can be applied independently from the other ones.
>
> The last patch of the serie removes the definition of strtobool().
>
> You may not be in copy of the cover letter. So, if needed, it is available
> at [1].
>
> [1]: https://lore.kernel.org/all/cover.1667336095.git.christophe.jaillet@xxxxxxxxxx/
> ---
> mm/page_table_check.c | 3 ++-
> mm/usercopy.c | 3 ++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/mm/page_table_check.c b/mm/page_table_check.c
> index 433dbce13fe1..93e633c1d587 100644
> --- a/mm/page_table_check.c
> +++ b/mm/page_table_check.c
> @@ -4,6 +4,7 @@
> * Copyright (c) 2021, Google LLC.
> * Pasha Tatashin <pasha.tatashin@xxxxxxxxxx>
> */
> +#include <linux/kstrtox.h>
> #include <linux/mm.h>
> #include <linux/page_table_check.h>
>
> @@ -23,7 +24,7 @@ EXPORT_SYMBOL(page_table_check_disabled);
>
> static int __init early_page_table_check_param(char *buf)
> {
> - return strtobool(buf, &__page_table_check_enabled);
> + return kstrtobool(buf, &__page_table_check_enabled);
> }

Acked-by: Pasha Tatashin <pasha.tatashin@xxxxxxxxxx>

>
> early_param("page_table_check", early_page_table_check_param);
> diff --git a/mm/usercopy.c b/mm/usercopy.c
> index c1ee15a98633..4c3164beacec 100644
> --- a/mm/usercopy.c
> +++ b/mm/usercopy.c
> @@ -12,6 +12,7 @@
>
> #include <linux/mm.h>
> #include <linux/highmem.h>
> +#include <linux/kstrtox.h>
> #include <linux/slab.h>
> #include <linux/sched.h>
> #include <linux/sched/task.h>
> @@ -258,7 +259,7 @@ static bool enable_checks __initdata = true;
>
> static int __init parse_hardened_usercopy(char *str)
> {
> - if (strtobool(str, &enable_checks))
> + if (kstrtobool(str, &enable_checks))
> pr_warn("Invalid option string for hardened_usercopy: '%s'\n",
> str);
> return 1;
> --
> 2.34.1
>