params: Introduce the param_unknown_fn type
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 20 Nov 2023 15:11:42 +0000 (17:11 +0200)
committerKees Cook <keescook@chromium.org>
Fri, 1 Dec 2023 17:51:43 +0000 (09:51 -0800)
Introduce a new type for the callback to parse an unknown argument.
This unifies function prototypes which takes that as a parameter.

Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20231120151419.1661807-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Kees Cook <keescook@chromium.org>
include/linux/moduleparam.h
kernel/params.c

index 4fa9726bc3282fed5eee824b6a5f7842bc90e785..bfb85fd13e1fae572276339f17ca423320ef92bd 100644 (file)
@@ -385,6 +385,8 @@ extern bool parameq(const char *name1, const char *name2);
  */
 extern bool parameqn(const char *name1, const char *name2, size_t n);
 
+typedef int (*parse_unknown_fn)(char *param, char *val, const char *doing, void *arg);
+
 /* Called on module insert or kernel boot */
 extern char *parse_args(const char *name,
                      char *args,
@@ -392,9 +394,7 @@ extern char *parse_args(const char *name,
                      unsigned num,
                      s16 level_min,
                      s16 level_max,
-                     void *arg,
-                     int (*unknown)(char *param, char *val,
-                                    const char *doing, void *arg));
+                     void *arg, parse_unknown_fn unknown);
 
 /* Called by module remove. */
 #ifdef CONFIG_SYSFS
index 2d4a0564697e832bcb3e6e9bfe03533d1db0e709..626fa8265932f991a0aca3cf49a3018a65d5ef31 100644 (file)
@@ -120,9 +120,7 @@ static int parse_one(char *param,
                     unsigned num_params,
                     s16 min_level,
                     s16 max_level,
-                    void *arg,
-                    int (*handle_unknown)(char *param, char *val,
-                                    const char *doing, void *arg))
+                    void *arg, parse_unknown_fn handle_unknown)
 {
        unsigned int i;
        int err;
@@ -165,9 +163,7 @@ char *parse_args(const char *doing,
                 unsigned num,
                 s16 min_level,
                 s16 max_level,
-                void *arg,
-                int (*unknown)(char *param, char *val,
-                               const char *doing, void *arg))
+                void *arg, parse_unknown_fn unknown)
 {
        char *param, *val, *err = NULL;