module_param_call is now completely consistent with module_param_cb, so
there is no need to keep two macros. Convert module_param_call to
module_param_cb since former is obsolete and latter is more kernel-ish.
Signed-off-by: Liu Shixin <[email protected]>
---
mm/shuffle.c | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/mm/shuffle.c b/mm/shuffle.c
index c13c33b247e8..fb1393b8b3a9 100644
--- a/mm/shuffle.c
+++ b/mm/shuffle.c
@@ -12,23 +12,22 @@
DEFINE_STATIC_KEY_FALSE(page_alloc_shuffle_key);
static bool shuffle_param;
-static int shuffle_show(char *buffer, const struct kernel_param *kp)
-{
- return sprintf(buffer, "%c\n", shuffle_param ? 'Y' : 'N');
-}
-static __meminit int shuffle_store(const char *val,
+static __meminit int shuffle_param_set(const char *val,
const struct kernel_param *kp)
{
- int rc = param_set_bool(val, kp);
-
- if (rc < 0)
- return rc;
- if (shuffle_param)
+ if (param_set_bool(val, kp))
+ return -EINVAL;
+ if (*(bool *)kp->arg)
static_branch_enable(&page_alloc_shuffle_key);
return 0;
}
-module_param_call(shuffle, shuffle_store, shuffle_show, &shuffle_param, 0400);
+
+static const struct kernel_param_ops shuffle_param_ops = {
+ .set = shuffle_param_set,
+ .get = param_get_bool,
+};
+module_param_cb(shuffle, &shuffle_param_ops, &shuffle_param, 0400);
/*
* For two pages to be swapped in the shuffle, they must be free (on a
--
2.25.1
On 09.09.22 10:39, Liu Shixin wrote:
> module_param_call is now completely consistent with module_param_cb, so
> there is no need to keep two macros. Convert module_param_call to
> module_param_cb since former is obsolete and latter is more kernel-ish.
>
> Signed-off-by: Liu Shixin <[email protected]>
> ---
> mm/shuffle.c | 21 ++++++++++-----------
> 1 file changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/mm/shuffle.c b/mm/shuffle.c
> index c13c33b247e8..fb1393b8b3a9 100644
> --- a/mm/shuffle.c
> +++ b/mm/shuffle.c
> @@ -12,23 +12,22 @@
> DEFINE_STATIC_KEY_FALSE(page_alloc_shuffle_key);
>
> static bool shuffle_param;
> -static int shuffle_show(char *buffer, const struct kernel_param *kp)
> -{
> - return sprintf(buffer, "%c\n", shuffle_param ? 'Y' : 'N');
> -}
>
> -static __meminit int shuffle_store(const char *val,
> +static __meminit int shuffle_param_set(const char *val,
> const struct kernel_param *kp)
> {
> - int rc = param_set_bool(val, kp);
> -
> - if (rc < 0)
> - return rc;
> - if (shuffle_param)
> + if (param_set_bool(val, kp))
> + return -EINVAL;
> + if (*(bool *)kp->arg)
> static_branch_enable(&page_alloc_shuffle_key);
> return 0;
> }
> -module_param_call(shuffle, shuffle_store, shuffle_show, &shuffle_param, 0400);
> +
> +static const struct kernel_param_ops shuffle_param_ops = {
> + .set = shuffle_param_set,
> + .get = param_get_bool,
> +};
> +module_param_cb(shuffle, &shuffle_param_ops, &shuffle_param, 0400);
>
> /*
> * For two pages to be swapped in the shuffle, they must be free (on a
LGTM
Reviewed-by: David Hildenbrand <[email protected]>
--
Thanks,
David / dhildenb