Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3b415288 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

modpost: move unresolved symbol checks to check_exports()



This will fit better in check_exports() than add_versions().

Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
parent c6826ad8
Loading
Loading
Loading
Loading
+18 −15
Original line number Diff line number Diff line
@@ -2097,15 +2097,27 @@ static void check_for_unused(enum export exp, const char *m, const char *s)
	}
}

static void check_exports(struct module *mod)
static int check_exports(struct module *mod)
{
	struct symbol *s, *exp;
	int err = 0;

	for (s = mod->unres; s; s = s->next) {
		const char *basename;
		exp = find_symbol(s->name);
		if (!exp || exp->module == mod)
		if (!exp || exp->module == mod) {
			if (have_vmlinux && !s->weak) {
				if (warn_unresolved) {
					warn("\"%s\" [%s.ko] undefined!\n",
					     s->name, mod->name);
				} else {
					merror("\"%s\" [%s.ko] undefined!\n",
					       s->name, mod->name);
					err = 1;
				}
			}
			continue;
		}
		basename = strrchr(mod->name, '/');
		if (basename)
			basename++;
@@ -2115,6 +2127,8 @@ static void check_exports(struct module *mod)
			check_for_gpl_usage(exp->export, basename, exp->name);
		check_for_unused(exp->export, basename, exp->name);
	}

	return err;
}

static int check_modname_len(struct module *mod)
@@ -2192,19 +2206,8 @@ static int add_versions(struct buffer *b, struct module *mod)

	for (s = mod->unres; s; s = s->next) {
		exp = find_symbol(s->name);
		if (!exp || exp->module == mod) {
			if (have_vmlinux && !s->weak) {
				if (warn_unresolved) {
					warn("\"%s\" [%s.ko] undefined!\n",
					     s->name, mod->name);
				} else {
					merror("\"%s\" [%s.ko] undefined!\n",
					       s->name, mod->name);
					err = 1;
				}
			}
		if (!exp || exp->module == mod)
			continue;
		}
		s->module = exp->module;
		s->crc_valid = exp->crc_valid;
		s->crc = exp->crc;
@@ -2507,7 +2510,7 @@ int main(int argc, char **argv)
		buf.pos = 0;

		err |= check_modname_len(mod);
		check_exports(mod);
		err |= check_exports(mod);
		add_header(&buf, mod);
		add_intree_flag(&buf, !external_module);
		add_retpoline(&buf);