mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-04 21:31:51 +00:00
Nothing major: support for compressing modules, and auto-tainting params.
Cheers, Rusty. 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. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJUGFrvAAoJENkgDmzRrbjxOJYQALaZbTumrtX3Mo/FAtzn8d5N 8gxcqk1Mhz4lR1vPWy/YN/H2f23qb/saqLxPar8Wgou3h7N8EqSdwDqJSuvEqhG0 iEXUsNLC7BOsDkLYhdjTfZoW/lsVU/EH4bkZMSxAZI9V64phXhDYfPb5SQgJTECr Ue6IK4ijW6zdWLstGfg/ixrIeGDUSnyiThF9O2mYVaB1D0QkLDIAZxbjZJgfFfut PwO33/sEV4pceTpkmxFKl/OiS+obi/VbDixjSCcO+jaBd1pVxH9fhhKREStOhN4z 88z5ADR71RH6so9TQTwIIcgb2Hon5d+3RVMB6CxuvKs9NmHSXDiQyZvG9J/jiSdm KrPKSiVwGGwJSwxXTm8CDaz6Oj0ibDXBIzv/vYI22sR7u8PmRQFvL3O1VrW+KDnE yoG75S9DHzSQ1183xFFFTt4FBRm/4XKyVs+F6YqYkchLigrUfQMCGb1cmZyE5y7K bgNyonu0m/ItoQmekoDgYqvSjwdguaJ35XCW55GrKJ84JDHBaw3SpPdEfjAS8FsH aT5o2oernvwRG6gsX9858RvB/uo1UKwHv1waDfV4cqNjMm5Ko+Yr6OIdQvBQiq07 cFkVmkrMtEyX19QyIGW3QSbFL1lr3X5cC5glzEeKY941yZbTluSsNuMlMPT1+IMx NOUbh0aG8B8ZaMZPFNLi =QzCn -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
bdf428feb2
11 changed files with 139 additions and 36 deletions
|
@ -18,7 +18,12 @@ __modinst: $(modules)
|
|||
|
||||
# Don't stop modules_install if we can't sign external modules.
|
||||
quiet_cmd_modules_install = INSTALL $@
|
||||
cmd_modules_install = mkdir -p $(2); cp $@ $(2) ; $(mod_strip_cmd) $(2)/$(notdir $@) ; $(mod_sign_cmd) $(2)/$(notdir $@) $(patsubst %,|| true,$(KBUILD_EXTMOD))
|
||||
cmd_modules_install = \
|
||||
mkdir -p $(2) ; \
|
||||
cp $@ $(2) ; \
|
||||
$(mod_strip_cmd) $(2)/$(notdir $@) ; \
|
||||
$(mod_sign_cmd) $(2)/$(notdir $@) $(patsubst %,|| true,$(KBUILD_EXTMOD)) ; \
|
||||
$(mod_compress_cmd) $(2)/$(notdir $@)
|
||||
|
||||
# Modules built outside the kernel source tree go into extra by default
|
||||
INSTALL_MOD_DIR ?= extra
|
||||
|
|
|
@ -7,7 +7,7 @@ __modsign:
|
|||
|
||||
include scripts/Kbuild.include
|
||||
|
||||
__modules := $(sort $(shell grep -h '\.ko' /dev/null $(wildcard $(MODVERDIR)/*.mod)))
|
||||
__modules := $(sort $(shell grep -h '\.ko$$' /dev/null $(wildcard $(MODVERDIR)/*.mod)))
|
||||
modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))
|
||||
|
||||
PHONY += $(modules)
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
#include "../../include/linux/export.h"
|
||||
|
||||
/* Are we using CONFIG_MODVERSIONS? */
|
||||
int modversions = 0;
|
||||
static int modversions = 0;
|
||||
/* Warn about undefined symbols? (do so if we have vmlinux) */
|
||||
int have_vmlinux = 0;
|
||||
static int have_vmlinux = 0;
|
||||
/* Is CONFIG_MODULE_SRCVERSION_ALL set? */
|
||||
static int all_versions = 0;
|
||||
/* If we are modposting external module set to 1 */
|
||||
|
@ -229,7 +229,7 @@ static struct symbol *find_symbol(const char *name)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static struct {
|
||||
static const struct {
|
||||
const char *str;
|
||||
enum export export;
|
||||
} export_list[] = {
|
||||
|
@ -805,7 +805,7 @@ static int match(const char *sym, const char * const pat[])
|
|||
}
|
||||
|
||||
/* sections that we do not want to do full section mismatch check on */
|
||||
static const char *section_white_list[] =
|
||||
static const char *const section_white_list[] =
|
||||
{
|
||||
".comment*",
|
||||
".debug*",
|
||||
|
@ -882,17 +882,18 @@ static void check_section(const char *modname, struct elf_info *elf,
|
|||
#define MEM_EXIT_SECTIONS ".memexit.*"
|
||||
|
||||
/* init data sections */
|
||||
static const char *init_data_sections[] = { ALL_INIT_DATA_SECTIONS, NULL };
|
||||
static const char *const init_data_sections[] =
|
||||
{ ALL_INIT_DATA_SECTIONS, NULL };
|
||||
|
||||
/* all init sections */
|
||||
static const char *init_sections[] = { ALL_INIT_SECTIONS, NULL };
|
||||
static const char *const init_sections[] = { ALL_INIT_SECTIONS, NULL };
|
||||
|
||||
/* All init and exit sections (code + data) */
|
||||
static const char *init_exit_sections[] =
|
||||
static const char *const init_exit_sections[] =
|
||||
{ALL_INIT_SECTIONS, ALL_EXIT_SECTIONS, NULL };
|
||||
|
||||
/* data section */
|
||||
static const char *data_sections[] = { DATA_SECTIONS, NULL };
|
||||
static const char *const data_sections[] = { DATA_SECTIONS, NULL };
|
||||
|
||||
|
||||
/* symbols in .data that may refer to init/exit sections */
|
||||
|
@ -906,8 +907,8 @@ static const char *data_sections[] = { DATA_SECTIONS, NULL };
|
|||
"*_probe_one", \
|
||||
"*_console"
|
||||
|
||||
static const char *head_sections[] = { ".head.text*", NULL };
|
||||
static const char *linker_symbols[] =
|
||||
static const char *const head_sections[] = { ".head.text*", NULL };
|
||||
static const char *const linker_symbols[] =
|
||||
{ "__init_begin", "_sinittext", "_einittext", NULL };
|
||||
|
||||
enum mismatch {
|
||||
|
@ -929,7 +930,7 @@ struct sectioncheck {
|
|||
const char *symbol_white_list[20];
|
||||
};
|
||||
|
||||
const struct sectioncheck sectioncheck[] = {
|
||||
static const struct sectioncheck sectioncheck[] = {
|
||||
/* Do not reference init/exit code/data from
|
||||
* normal code and data
|
||||
*/
|
||||
|
@ -2211,7 +2212,7 @@ int main(int argc, char **argv)
|
|||
err = 0;
|
||||
|
||||
for (mod = modules; mod; mod = mod->next) {
|
||||
char fname[strlen(mod->name) + 10];
|
||||
char fname[PATH_MAX];
|
||||
|
||||
if (mod->skip)
|
||||
continue;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue