Commit 4ddea2f8 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

modpost: do not call get_modinfo() for vmlinux(.o)



The three calls of get_modinfo() ("license", "import_ns", "version")
always return NULL for vmlinux(.o) because the built-in module info is
prefixed with __MODULE_INFO_PREFIX.

It is harmless to call get_modinfo(), but there is no point to search
for what apparently does not exist.

Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent f6931535
Loading
Loading
Loading
Loading
+24 −21
Original line number Diff line number Diff line
@@ -2006,11 +2006,10 @@ static void read_symbols(const char *modname)
		mod->skip = 1;
	}

	if (!is_vmlinux(modname)) {
		license = get_modinfo(&info, "license");
	if (!license && !is_vmlinux(modname))
		warn("missing MODULE_LICENSE() in %s\n"
		     "see include/linux/module.h for "
		     "more information\n", modname);
		if (!license)
			warn("missing MODULE_LICENSE() in %s\n", modname);
		while (license) {
			if (license_is_gpl_compatible(license))
				mod->gpl_compatible = 1;
@@ -2024,7 +2023,9 @@ static void read_symbols(const char *modname)
		namespace = get_modinfo(&info, "import_ns");
		while (namespace) {
			add_namespace(&mod->imported_namespaces, namespace);
		namespace = get_next_modinfo(&info, "import_ns", namespace);
			namespace = get_next_modinfo(&info, "import_ns",
						     namespace);
		}
	}

	for (sym = info.symtab_start; sym < info.symtab_stop; sym++) {
@@ -2065,10 +2066,12 @@ static void read_symbols(const char *modname)
	if (!is_vmlinux(modname) || vmlinux_section_warnings)
		check_sec_ref(mod, modname, &info);

	if (!is_vmlinux(modname)) {
		version = get_modinfo(&info, "version");
	if (version || (all_versions && !is_vmlinux(modname)))
		if (version || all_versions)
			get_src_version(modname, mod->srcversion,
					sizeof(mod->srcversion) - 1);
	}

	parse_elf_finish(&info);