Skip to content

Commit cdd66eb

Browse files
masahir0ymcgrof
authored andcommitted
module: do not binary-search in __ksymtab_gpl if fsa->gplok is false
Currently, !fsa->gplok && syms->license == GPL_ONLY) is checked after bsearch() succeeds. It is meaningless to do the binary search in the GPL symbol table when fsa->gplok is false because we know find_exported_symbol_in_section() will fail anyway. This check should be done before bsearch(). Signed-off-by: Masahiro Yamada <[email protected]> Signed-off-by: Luis Chamberlain <[email protected]>
1 parent c6eee9d commit cdd66eb

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

kernel/module/main.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,6 @@ static bool check_exported_symbol(const struct symsearch *syms,
247247
struct module *owner, unsigned int symnum,
248248
struct find_symbol_arg *fsa)
249249
{
250-
if (!fsa->gplok && syms->license == GPL_ONLY)
251-
return false;
252250
fsa->owner = owner;
253251
fsa->crc = symversion(syms->crcs, symnum);
254252
fsa->sym = &syms->start[symnum];
@@ -287,6 +285,9 @@ static bool find_exported_symbol_in_section(const struct symsearch *syms,
287285
{
288286
struct kernel_symbol *sym;
289287

288+
if (!fsa->gplok && syms->license == GPL_ONLY)
289+
return false;
290+
290291
sym = bsearch(fsa->name, syms->start, syms->stop - syms->start,
291292
sizeof(struct kernel_symbol), cmp_name);
292293

0 commit comments

Comments
 (0)