aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/mod/modpost.c
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mod/modpost.c')
-rw-r--r--scripts/mod/modpost.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 5ab7914d30ef..87e3ee56e87d 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -23,6 +23,8 @@ int have_vmlinux = 0;
23static int all_versions = 0; 23static int all_versions = 0;
24/* If we are modposting external module set to 1 */ 24/* If we are modposting external module set to 1 */
25static int external_module = 0; 25static int external_module = 0;
26/* Warn about section mismatch in vmlinux if set to 1 */
27static int vmlinux_section_warnings = 1;
26/* Only warn about unresolved symbols */ 28/* Only warn about unresolved symbols */
27static int warn_unresolved = 0; 29static int warn_unresolved = 0;
28/* How a symbol is exported */ 30/* How a symbol is exported */
@@ -1257,8 +1259,10 @@ static void read_symbols(char *modname)
1257 handle_modversions(mod, &info, sym, symname); 1259 handle_modversions(mod, &info, sym, symname);
1258 handle_moddevtable(mod, &info, sym, symname); 1260 handle_moddevtable(mod, &info, sym, symname);
1259 } 1261 }
1260 check_sec_ref(mod, modname, &info, init_section, init_section_ref_ok); 1262 if (is_vmlinux(modname) && vmlinux_section_warnings) {
1261 check_sec_ref(mod, modname, &info, exit_section, exit_section_ref_ok); 1263 check_sec_ref(mod, modname, &info, init_section, init_section_ref_ok);
1264 check_sec_ref(mod, modname, &info, exit_section, exit_section_ref_ok);
1265 }
1262 1266
1263 version = get_modinfo(info.modinfo, info.modinfo_len, "version"); 1267 version = get_modinfo(info.modinfo, info.modinfo_len, "version");
1264 if (version) 1268 if (version)
@@ -1626,7 +1630,7 @@ int main(int argc, char **argv)
1626 int opt; 1630 int opt;
1627 int err; 1631 int err;
1628 1632
1629 while ((opt = getopt(argc, argv, "i:I:mo:aw")) != -1) { 1633 while ((opt = getopt(argc, argv, "i:I:mso:aw")) != -1) {
1630 switch(opt) { 1634 switch(opt) {
1631 case 'i': 1635 case 'i':
1632 kernel_read = optarg; 1636 kernel_read = optarg;
@@ -1644,6 +1648,9 @@ int main(int argc, char **argv)
1644 case 'a': 1648 case 'a':
1645 all_versions = 1; 1649 all_versions = 1;
1646 break; 1650 break;
1651 case 's':
1652 vmlinux_section_warnings = 0;
1653 break;
1647 case 'w': 1654 case 'w':
1648 warn_unresolved = 1; 1655 warn_unresolved = 1;
1649 break; 1656 break;