kernel/livepatch/core.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-)
The implementation of function klp_match_callback() is identical to the
partial implementation of function klp_find_callback(). So call function
klp_match_callback() in function klp_find_callback() instead of the
duplicated code.
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
---
kernel/livepatch/core.c | 33 +++++++++++----------------------
1 file changed, 11 insertions(+), 22 deletions(-)
diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
index 50bfc3481a4ee38..201f0c0482fb56d 100644
--- a/kernel/livepatch/core.c
+++ b/kernel/livepatch/core.c
@@ -125,20 +125,10 @@ struct klp_find_arg {
unsigned long pos;
};
-static int klp_find_callback(void *data, const char *name,
- struct module *mod, unsigned long addr)
+static int klp_match_callback(void *data, unsigned long addr)
{
struct klp_find_arg *args = data;
- if ((mod && !args->objname) || (!mod && args->objname))
- return 0;
-
- if (strcmp(args->name, name))
- return 0;
-
- if (args->objname && strcmp(args->objname, mod->name))
- return 0;
-
args->addr = addr;
args->count++;
@@ -153,22 +143,21 @@ static int klp_find_callback(void *data, const char *name,
return 0;
}
-static int klp_match_callback(void *data, unsigned long addr)
+static int klp_find_callback(void *data, const char *name,
+ struct module *mod, unsigned long addr)
{
struct klp_find_arg *args = data;
- args->addr = addr;
- args->count++;
+ if ((mod && !args->objname) || (!mod && args->objname))
+ return 0;
- /*
- * Finish the search when the symbol is found for the desired position
- * or the position is not defined for a non-unique symbol.
- */
- if ((args->pos && (args->count == args->pos)) ||
- (!args->pos && (args->count > 1)))
- return 1;
+ if (strcmp(args->name, name))
+ return 0;
- return 0;
+ if (args->objname && strcmp(args->objname, mod->name))
+ return 0;
+
+ return klp_match_callback(data, addr);
}
static int klp_find_object_symbol(const char *objname, const char *name,
--
2.25.1
On Wed 2022-12-07 11:23:04, Zhen Lei wrote: > The implementation of function klp_match_callback() is identical to the > partial implementation of function klp_find_callback(). So call function > klp_match_callback() in function klp_find_callback() instead of the > duplicated code. > > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> Thanks for cleaning this. Reviewed-by: Petr Mladek <pmladek@suse.com> Best Regards, Petr
On 2022/12/9 17:12, Petr Mladek wrote: > On Wed 2022-12-07 11:23:04, Zhen Lei wrote: >> The implementation of function klp_match_callback() is identical to the >> partial implementation of function klp_find_callback(). So call function >> klp_match_callback() in function klp_find_callback() instead of the >> duplicated code. >> >> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> > > Thanks for cleaning this. > > Reviewed-by: Petr Mladek <pmladek@suse.com> Oh, sorry, I realized that I had forgotten to add: Suggested-by: Petr Mladek <pmladek@suse.com> Hi Luis: Can you help me add it? > > Best Regards, > Petr > . > -- Regards, Zhen Lei
On Fri, Dec 09, 2022 at 07:29:56PM +0800, Leizhen (ThunderTown) wrote: > > > On 2022/12/9 17:12, Petr Mladek wrote: > > On Wed 2022-12-07 11:23:04, Zhen Lei wrote: > >> The implementation of function klp_match_callback() is identical to the > >> partial implementation of function klp_find_callback(). So call function > >> klp_match_callback() in function klp_find_callback() instead of the > >> duplicated code. > >> > >> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> > > > > Thanks for cleaning this. > > > > Reviewed-by: Petr Mladek <pmladek@suse.com> > > Oh, sorry, I realized that I had forgotten to add: > Suggested-by: Petr Mladek <pmladek@suse.com> > > Hi Luis: > Can you help me add it? Done! Luis
On Fri 2022-12-09 19:29:56, Leizhen (ThunderTown) wrote: > > > On 2022/12/9 17:12, Petr Mladek wrote: > > On Wed 2022-12-07 11:23:04, Zhen Lei wrote: > >> The implementation of function klp_match_callback() is identical to the > >> partial implementation of function klp_find_callback(). So call function > >> klp_match_callback() in function klp_find_callback() instead of the > >> duplicated code. > >> > >> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> > > > > Thanks for cleaning this. > > > > Reviewed-by: Petr Mladek <pmladek@suse.com> > > Oh, sorry, I realized that I had forgotten to add: > Suggested-by: Petr Mladek <pmladek@suse.com> > > Hi Luis: > Can you help me add it? JFYI, I could live without it ;-) Best Regards, Petr
On Tue, Dec 6, 2022 at 7:25 PM Zhen Lei <thunder.leizhen@huawei.com> wrote: > > The implementation of function klp_match_callback() is identical to the > partial implementation of function klp_find_callback(). So call function > klp_match_callback() in function klp_find_callback() instead of the > duplicated code. > > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> Acked-by: Song Liu <song@kernel.org>
On Thu, Dec 08, 2022 at 04:11:06PM -0800, Song Liu wrote: > On Tue, Dec 6, 2022 at 7:25 PM Zhen Lei <thunder.leizhen@huawei.com> wrote: > > > > The implementation of function klp_match_callback() is identical to the > > partial implementation of function klp_find_callback(). So call function > > klp_match_callback() in function klp_find_callback() instead of the > > duplicated code. > > > > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> > > Acked-by: Song Liu <song@kernel.org> Thanks, applied to modules-next given this depends on the kallsyms stuff there. Pushed out. Luis
© 2016 - 2025 Red Hat, Inc.