aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-10-07 20:17:38 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-10-07 20:17:38 -0400
commitbdf428feb225229b1d4715b45bbdad4a934cd89c (patch)
tree9bc47e348c2081fd46c0f7d715780ce294a6953d /scripts
parenta40a7201a4584a66ab234ba1006472be952f20e0 (diff)
parent184c3fc3f52fb75800deb76deffb70907d1f76ea (diff)
Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
Pull module update from Rusty Russell: "Nothing major: support for compressing modules, and auto-tainting params. PS. My virtio-next tree is empty: DaveM took the patches I had. There might be a virtio-rng starvation fix, but so far it's a bit voodoo so I will get to that in the next two days or it will wait" * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: moduleparam: Resolve missing-field-initializer warning kbuild: handle module compression while running 'make modules_install'. modinst: wrap long lines in order to enhance cmd_modules_install modsign: lookup lines ending in .ko in .mod files modpost: simplify file name generation of *.mod.c files modpost: reduce visibility of symbols and constify r/o arrays param: check for tainting before calling set op. drm/i915: taint the kernel if unsafe module parameters are set module: add module_param_unsafe and module_param_named_unsafe module: make it possible to have unsafe, tainting module params module: rename KERNEL_PARAM_FL_NOARG to avoid confusion
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.modinst7
-rw-r--r--scripts/Makefile.modsign2
-rw-r--r--scripts/mod/modpost.c25
3 files changed, 20 insertions, 14 deletions
diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
index 95ec7b35e8b6..e48a4e9d8868 100644
--- a/scripts/Makefile.modinst
+++ b/scripts/Makefile.modinst
@@ -18,7 +18,12 @@ __modinst: $(modules)
18 18
19# Don't stop modules_install if we can't sign external modules. 19# Don't stop modules_install if we can't sign external modules.
20quiet_cmd_modules_install = INSTALL $@ 20quiet_cmd_modules_install = INSTALL $@
21 cmd_modules_install = mkdir -p $(2); cp $@ $(2) ; $(mod_strip_cmd) $(2)/$(notdir $@) ; $(mod_sign_cmd) $(2)/$(notdir $@) $(patsubst %,|| true,$(KBUILD_EXTMOD)) 21 cmd_modules_install = \
22 mkdir -p $(2) ; \
23 cp $@ $(2) ; \
24 $(mod_strip_cmd) $(2)/$(notdir $@) ; \
25 $(mod_sign_cmd) $(2)/$(notdir $@) $(patsubst %,|| true,$(KBUILD_EXTMOD)) ; \
26 $(mod_compress_cmd) $(2)/$(notdir $@)
22 27
23# Modules built outside the kernel source tree go into extra by default 28# Modules built outside the kernel source tree go into extra by default
24INSTALL_MOD_DIR ?= extra 29INSTALL_MOD_DIR ?= extra
diff --git a/scripts/Makefile.modsign b/scripts/Makefile.modsign
index abfda626dbad..b6ac7084da79 100644
--- a/scripts/Makefile.modsign
+++ b/scripts/Makefile.modsign
@@ -7,7 +7,7 @@ __modsign:
7 7
8include scripts/Kbuild.include 8include scripts/Kbuild.include
9 9
10__modules := $(sort $(shell grep -h '\.ko' /dev/null $(wildcard $(MODVERDIR)/*.mod))) 10__modules := $(sort $(shell grep -h '\.ko$$' /dev/null $(wildcard $(MODVERDIR)/*.mod)))
11modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o))) 11modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))
12 12
13PHONY += $(modules) 13PHONY += $(modules)
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 091d90573b63..3b405c726ec5 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -24,9 +24,9 @@
24#include "../../include/linux/export.h" 24#include "../../include/linux/export.h"
25 25
26/* Are we using CONFIG_MODVERSIONS? */ 26/* Are we using CONFIG_MODVERSIONS? */
27int modversions = 0; 27static int modversions = 0;
28/* Warn about undefined symbols? (do so if we have vmlinux) */ 28/* Warn about undefined symbols? (do so if we have vmlinux) */
29int have_vmlinux = 0; 29static int have_vmlinux = 0;
30/* Is CONFIG_MODULE_SRCVERSION_ALL set? */ 30/* Is CONFIG_MODULE_SRCVERSION_ALL set? */
31static int all_versions = 0; 31static int all_versions = 0;
32/* If we are modposting external module set to 1 */ 32/* If we are modposting external module set to 1 */
@@ -229,7 +229,7 @@ static struct symbol *find_symbol(const char *name)
229 return NULL; 229 return NULL;
230} 230}
231 231
232static struct { 232static const struct {
233 const char *str; 233 const char *str;
234 enum export export; 234 enum export export;
235} export_list[] = { 235} export_list[] = {
@@ -805,7 +805,7 @@ static int match(const char *sym, const char * const pat[])
805} 805}
806 806
807/* sections that we do not want to do full section mismatch check on */ 807/* sections that we do not want to do full section mismatch check on */
808static const char *section_white_list[] = 808static const char *const section_white_list[] =
809{ 809{
810 ".comment*", 810 ".comment*",
811 ".debug*", 811 ".debug*",
@@ -882,17 +882,18 @@ static void check_section(const char *modname, struct elf_info *elf,
882#define MEM_EXIT_SECTIONS ".memexit.*" 882#define MEM_EXIT_SECTIONS ".memexit.*"
883 883
884/* init data sections */ 884/* init data sections */
885static const char *init_data_sections[] = { ALL_INIT_DATA_SECTIONS, NULL }; 885static const char *const init_data_sections[] =
886 { ALL_INIT_DATA_SECTIONS, NULL };
886 887
887/* all init sections */ 888/* all init sections */
888static const char *init_sections[] = { ALL_INIT_SECTIONS, NULL }; 889static const char *const init_sections[] = { ALL_INIT_SECTIONS, NULL };
889 890
890/* All init and exit sections (code + data) */ 891/* All init and exit sections (code + data) */
891static const char *init_exit_sections[] = 892static const char *const init_exit_sections[] =
892 {ALL_INIT_SECTIONS, ALL_EXIT_SECTIONS, NULL }; 893 {ALL_INIT_SECTIONS, ALL_EXIT_SECTIONS, NULL };
893 894
894/* data section */ 895/* data section */
895static const char *data_sections[] = { DATA_SECTIONS, NULL }; 896static const char *const data_sections[] = { DATA_SECTIONS, NULL };
896 897
897 898
898/* symbols in .data that may refer to init/exit sections */ 899/* symbols in .data that may refer to init/exit sections */
@@ -906,8 +907,8 @@ static const char *data_sections[] = { DATA_SECTIONS, NULL };
906 "*_probe_one", \ 907 "*_probe_one", \
907 "*_console" 908 "*_console"
908 909
909static const char *head_sections[] = { ".head.text*", NULL }; 910static const char *const head_sections[] = { ".head.text*", NULL };
910static const char *linker_symbols[] = 911static const char *const linker_symbols[] =
911 { "__init_begin", "_sinittext", "_einittext", NULL }; 912 { "__init_begin", "_sinittext", "_einittext", NULL };
912 913
913enum mismatch { 914enum mismatch {
@@ -929,7 +930,7 @@ struct sectioncheck {
929 const char *symbol_white_list[20]; 930 const char *symbol_white_list[20];
930}; 931};
931 932
932const struct sectioncheck sectioncheck[] = { 933static const struct sectioncheck sectioncheck[] = {
933/* Do not reference init/exit code/data from 934/* Do not reference init/exit code/data from
934 * normal code and data 935 * normal code and data
935 */ 936 */
@@ -2211,7 +2212,7 @@ int main(int argc, char **argv)
2211 err = 0; 2212 err = 0;
2212 2213
2213 for (mod = modules; mod; mod = mod->next) { 2214 for (mod = modules; mod; mod = mod->next) {
2214 char fname[strlen(mod->name) + 10]; 2215 char fname[PATH_MAX];
2215 2216
2216 if (mod->skip) 2217 if (mod->skip)
2217 continue; 2218 continue;