diff options
Diffstat (limited to 'scripts/mod')
-rw-r--r-- | scripts/mod/modpost.c | 13 |
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; | |||
23 | static int all_versions = 0; | 23 | static int all_versions = 0; |
24 | /* If we are modposting external module set to 1 */ | 24 | /* If we are modposting external module set to 1 */ |
25 | static int external_module = 0; | 25 | static int external_module = 0; |
26 | /* Warn about section mismatch in vmlinux if set to 1 */ | ||
27 | static int vmlinux_section_warnings = 1; | ||
26 | /* Only warn about unresolved symbols */ | 28 | /* Only warn about unresolved symbols */ |
27 | static int warn_unresolved = 0; | 29 | static 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; |