module: remove EXPORT_UNUSED_SYMBOL*
EXPORT_UNUSED_SYMBOL* is not actually used anywhere. Remove the unused functionality as we generally just remove unused code anyway. Reviewed-by: Miroslav Benes <mbenes@suse.cz> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jessica Yu <jeyu@kernel.org>
This commit is contained in:
committed by
Jessica Yu
parent
f1c3d73e97
commit
367948220f
@@ -410,14 +410,6 @@ extern const struct kernel_symbol __start___ksymtab_gpl[];
|
||||
extern const struct kernel_symbol __stop___ksymtab_gpl[];
|
||||
extern const s32 __start___kcrctab[];
|
||||
extern const s32 __start___kcrctab_gpl[];
|
||||
#ifdef CONFIG_UNUSED_SYMBOLS
|
||||
extern const struct kernel_symbol __start___ksymtab_unused[];
|
||||
extern const struct kernel_symbol __stop___ksymtab_unused[];
|
||||
extern const struct kernel_symbol __start___ksymtab_unused_gpl[];
|
||||
extern const struct kernel_symbol __stop___ksymtab_unused_gpl[];
|
||||
extern const s32 __start___kcrctab_unused[];
|
||||
extern const s32 __start___kcrctab_unused_gpl[];
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_MODVERSIONS
|
||||
#define symversion(base, idx) NULL
|
||||
@@ -432,7 +424,6 @@ struct symsearch {
|
||||
NOT_GPL_ONLY,
|
||||
GPL_ONLY,
|
||||
} license;
|
||||
bool unused;
|
||||
};
|
||||
|
||||
struct find_symbol_arg {
|
||||
@@ -456,19 +447,6 @@ static bool check_exported_symbol(const struct symsearch *syms,
|
||||
|
||||
if (!fsa->gplok && syms->license == GPL_ONLY)
|
||||
return false;
|
||||
|
||||
#ifdef CONFIG_UNUSED_SYMBOLS
|
||||
if (syms->unused && fsa->warn) {
|
||||
pr_warn("Symbol %s is marked as UNUSED, however this module is "
|
||||
"using it.\n", fsa->name);
|
||||
pr_warn("This symbol will go away in the future.\n");
|
||||
pr_warn("Please evaluate if this is the right api to use and "
|
||||
"if it really is, submit a report to the linux kernel "
|
||||
"mailing list together with submitting your code for "
|
||||
"inclusion.\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
fsa->owner = owner;
|
||||
fsa->crc = symversion(syms->crcs, symnum);
|
||||
fsa->sym = &syms->start[symnum];
|
||||
@@ -535,18 +513,10 @@ static bool find_symbol(struct find_symbol_arg *fsa)
|
||||
{
|
||||
static const struct symsearch arr[] = {
|
||||
{ __start___ksymtab, __stop___ksymtab, __start___kcrctab,
|
||||
NOT_GPL_ONLY, false },
|
||||
NOT_GPL_ONLY },
|
||||
{ __start___ksymtab_gpl, __stop___ksymtab_gpl,
|
||||
__start___kcrctab_gpl,
|
||||
GPL_ONLY, false },
|
||||
#ifdef CONFIG_UNUSED_SYMBOLS
|
||||
{ __start___ksymtab_unused, __stop___ksymtab_unused,
|
||||
__start___kcrctab_unused,
|
||||
NOT_GPL_ONLY, true },
|
||||
{ __start___ksymtab_unused_gpl, __stop___ksymtab_unused_gpl,
|
||||
__start___kcrctab_unused_gpl,
|
||||
GPL_ONLY, true },
|
||||
#endif
|
||||
GPL_ONLY },
|
||||
};
|
||||
struct module *mod;
|
||||
unsigned int i;
|
||||
@@ -561,20 +531,10 @@ static bool find_symbol(struct find_symbol_arg *fsa)
|
||||
lockdep_is_held(&module_mutex)) {
|
||||
struct symsearch arr[] = {
|
||||
{ mod->syms, mod->syms + mod->num_syms, mod->crcs,
|
||||
NOT_GPL_ONLY, false },
|
||||
NOT_GPL_ONLY },
|
||||
{ mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
|
||||
mod->gpl_crcs,
|
||||
GPL_ONLY, false },
|
||||
#ifdef CONFIG_UNUSED_SYMBOLS
|
||||
{ mod->unused_syms,
|
||||
mod->unused_syms + mod->num_unused_syms,
|
||||
mod->unused_crcs,
|
||||
NOT_GPL_ONLY, true },
|
||||
{ mod->unused_gpl_syms,
|
||||
mod->unused_gpl_syms + mod->num_unused_gpl_syms,
|
||||
mod->unused_gpl_crcs,
|
||||
GPL_ONLY, true },
|
||||
#endif
|
||||
GPL_ONLY },
|
||||
};
|
||||
|
||||
if (mod->state == MODULE_STATE_UNFORMED)
|
||||
@@ -2274,10 +2234,6 @@ static int verify_exported_symbols(struct module *mod)
|
||||
} arr[] = {
|
||||
{ mod->syms, mod->num_syms },
|
||||
{ mod->gpl_syms, mod->num_gpl_syms },
|
||||
#ifdef CONFIG_UNUSED_SYMBOLS
|
||||
{ mod->unused_syms, mod->num_unused_syms },
|
||||
{ mod->unused_gpl_syms, mod->num_unused_gpl_syms },
|
||||
#endif
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(arr); i++) {
|
||||
@@ -3290,16 +3246,6 @@ static int find_module_sections(struct module *mod, struct load_info *info)
|
||||
&mod->num_gpl_syms);
|
||||
mod->gpl_crcs = section_addr(info, "__kcrctab_gpl");
|
||||
|
||||
#ifdef CONFIG_UNUSED_SYMBOLS
|
||||
mod->unused_syms = section_objs(info, "__ksymtab_unused",
|
||||
sizeof(*mod->unused_syms),
|
||||
&mod->num_unused_syms);
|
||||
mod->unused_crcs = section_addr(info, "__kcrctab_unused");
|
||||
mod->unused_gpl_syms = section_objs(info, "__ksymtab_unused_gpl",
|
||||
sizeof(*mod->unused_gpl_syms),
|
||||
&mod->num_unused_gpl_syms);
|
||||
mod->unused_gpl_crcs = section_addr(info, "__kcrctab_unused_gpl");
|
||||
#endif
|
||||
#ifdef CONFIG_CONSTRUCTORS
|
||||
mod->ctors = section_objs(info, ".ctors",
|
||||
sizeof(*mod->ctors), &mod->num_ctors);
|
||||
@@ -3480,13 +3426,8 @@ static int check_module_license_and_versions(struct module *mod)
|
||||
pr_warn("%s: module license taints kernel.\n", mod->name);
|
||||
|
||||
#ifdef CONFIG_MODVERSIONS
|
||||
if ((mod->num_syms && !mod->crcs)
|
||||
|| (mod->num_gpl_syms && !mod->gpl_crcs)
|
||||
#ifdef CONFIG_UNUSED_SYMBOLS
|
||||
|| (mod->num_unused_syms && !mod->unused_crcs)
|
||||
|| (mod->num_unused_gpl_syms && !mod->unused_gpl_crcs)
|
||||
#endif
|
||||
) {
|
||||
if ((mod->num_syms && !mod->crcs) ||
|
||||
(mod->num_gpl_syms && !mod->gpl_crcs)) {
|
||||
return try_to_force_load(mod,
|
||||
"no versions for exported symbols");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user