each_symbol_in_section just contains a trivial loop over its arguments.
Just open code the loop in the two callers.

Signed-off-by: Christoph Hellwig <h...@lst.de>
---
 kernel/module.c | 29 +++++++----------------------
 1 file changed, 7 insertions(+), 22 deletions(-)

diff --git a/kernel/module.c b/kernel/module.c
index d163c78ca8ed69..a9d092765c4eab 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -433,30 +433,13 @@ extern const s32 __start___kcrctab_unused_gpl[];
 #define symversion(base, idx) ((base != NULL) ? ((base) + (idx)) : NULL)
 #endif
 
-static bool each_symbol_in_section(const struct symsearch *arr,
-                                  unsigned int arrsize,
-                                  struct module *owner,
-                                  bool (*fn)(const struct symsearch *syms,
-                                             struct module *owner,
-                                             void *data),
-                                  void *data)
-{
-       unsigned int j;
-
-       for (j = 0; j < arrsize; j++) {
-               if (fn(&arr[j], owner, data))
-                       return true;
-       }
-
-       return false;
-}
-
 /* Returns true as soon as fn returns true, otherwise false. */
 static bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
                                    struct module *owner,
                                    void *data),
                         void *data)
 {
+       unsigned int i;
        struct module *mod;
        static const struct symsearch arr[] = {
                { __start___ksymtab, __stop___ksymtab, __start___kcrctab,
@@ -479,8 +462,9 @@ static bool each_symbol_section(bool (*fn)(const struct 
symsearch *arr,
 
        module_assert_mutex_or_preempt();
 
-       if (each_symbol_in_section(arr, ARRAY_SIZE(arr), NULL, fn, data))
-               return true;
+       for (i = 0; i < ARRAY_SIZE(arr); i++)
+               if (fn(&arr[i], NULL, data))
+                       return true;
 
        list_for_each_entry_rcu(mod, &modules, list,
                                lockdep_is_held(&module_mutex)) {
@@ -509,8 +493,9 @@ static bool each_symbol_section(bool (*fn)(const struct 
symsearch *arr,
                if (mod->state == MODULE_STATE_UNFORMED)
                        continue;
 
-               if (each_symbol_in_section(arr, ARRAY_SIZE(arr), mod, fn, data))
-                       return true;
+               for (i = 0; i < ARRAY_SIZE(arr); i++)
+                       if (fn(&arr[i], mod, data))
+                               return true;
        }
        return false;
 }
-- 
2.29.2

Reply via email to