[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 2 Feb 2021 15:07:51 +0100 (CET)
From: Miroslav Benes <mbenes@...e.cz>
To: Christoph Hellwig <hch@....de>
cc: Frederic Barrat <fbarrat@...ux.ibm.com>,
Andrew Donnellan <ajd@...ux.ibm.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...ux.ie>,
Daniel Vetter <daniel@...ll.ch>, Jessica Yu <jeyu@...nel.org>,
Josh Poimboeuf <jpoimboe@...hat.com>,
Jiri Kosina <jikos@...nel.org>, Petr Mladek <pmladek@...e.com>,
Joe Lawrence <joe.lawrence@...hat.com>,
Masahiro Yamada <masahiroy@...nel.org>,
Michal Marek <michal.lkml@...kovi.net>,
linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
dri-devel@...ts.freedesktop.org, live-patching@...r.kernel.org,
linux-kbuild@...r.kernel.org
Subject: Re: [PATCH 10/13] module: pass struct find_symbol_args to
find_symbol
> void *__symbol_get(const char *symbol)
> {
> - struct module *owner;
> - const struct kernel_symbol *sym;
> + struct find_symbol_arg fsa = {
> + .name = symbol,
> + .gplok = true,
> + .warn = true,
> + };
>
> preempt_disable();
> - sym = find_symbol(symbol, &owner, NULL, NULL, true, true);
> - if (sym && strong_try_module_get(owner))
> - sym = NULL;
> + if (!find_symbol(&fsa) || !strong_try_module_get(fsa.owner)) {
I think this should be in fact
if (!find_symbol(&fsa) || strong_try_module_get(fsa.owner)) {
to get the logic right (note the missing !). We want to return NULL if
strong_try_module_get() does not succeed for a found symbol.
> + preempt_enable();
> + return NULL;
> + }
> preempt_enable();
> -
> - return sym ? (void *)kernel_symbol_value(sym) : NULL;
> + return (void *)kernel_symbol_value(fsa.sym);
> }
> EXPORT_SYMBOL_GPL(__symbol_get);
Miroslav
Powered by blists - more mailing lists