aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/module.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-10-17 12:50:12 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-17 12:50:12 -0400
commit26e9a397774a0e94efbb8a0bf4a952c28d808cab (patch)
treefee2211b32a30c71bd22543acb791feeebd91b35 /kernel/module.c
parentbdbf0ac7e187b2b757216e653e64f8b808b9077e (diff)
parent99e06e372378c5833a0c60274b645dfb2e4a4b08 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (25 commits) staging: at76_usb wireless driver Staging: workaround build system bug Staging: Lindent sxg.c Staging: SLICOSS: Call pci_release_regions at driver exit Staging: SLICOSS: Fix remaining type names Staging: SLICOSS: Fix warnings due to static usage Staging: SLICOSS: lots of checkpatch fixes Staging: go7007 v4l fixes Staging: Fix gcc warnings in sxg Staging: add echo cancelation module Staging: add wlan-ng prism2 usb driver Staging: add w35und wifi driver Staging: USB/IP: add host driver Staging: USB/IP: add client driver Staging: USB/IP: add common functions needed Staging: add the go7007 video driver Staging: add me4000 pci data collection driver Staging: add me4000 firmware files Staging: add sxg network driver Staging: add Alacritech slicoss network driver ... Fixed up conflicts due to taint flags changes and MAINTAINERS cleanup in MAINTAINERS, include/linux/kernel.h and kernel/panic.c.
Diffstat (limited to 'kernel/module.c')
-rw-r--r--kernel/module.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/module.c b/kernel/module.c
index b7205f67cfaf..25bc9ac9e226 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1834,6 +1834,7 @@ static noinline struct module *load_module(void __user *umod,
1834 Elf_Ehdr *hdr; 1834 Elf_Ehdr *hdr;
1835 Elf_Shdr *sechdrs; 1835 Elf_Shdr *sechdrs;
1836 char *secstrings, *args, *modmagic, *strtab = NULL; 1836 char *secstrings, *args, *modmagic, *strtab = NULL;
1837 char *staging;
1837 unsigned int i; 1838 unsigned int i;
1838 unsigned int symindex = 0; 1839 unsigned int symindex = 0;
1839 unsigned int strindex = 0; 1840 unsigned int strindex = 0;
@@ -1989,6 +1990,14 @@ static noinline struct module *load_module(void __user *umod,
1989 goto free_hdr; 1990 goto free_hdr;
1990 } 1991 }
1991 1992
1993 staging = get_modinfo(sechdrs, infoindex, "staging");
1994 if (staging) {
1995 add_taint_module(mod, TAINT_CRAP);
1996 printk(KERN_WARNING "%s: module is from the staging directory,"
1997 " the quality is unknown, you have been warned.\n",
1998 mod->name);
1999 }
2000
1992 /* Now copy in args */ 2001 /* Now copy in args */
1993 args = strndup_user(uargs, ~0UL >> 1); 2002 args = strndup_user(uargs, ~0UL >> 1);
1994 if (IS_ERR(args)) { 2003 if (IS_ERR(args)) {
@@ -2587,6 +2596,8 @@ static char *module_flags(struct module *mod, char *buf)
2587 buf[bx++] = 'P'; 2596 buf[bx++] = 'P';
2588 if (mod->taints & (1 << TAINT_FORCED_MODULE)) 2597 if (mod->taints & (1 << TAINT_FORCED_MODULE))
2589 buf[bx++] = 'F'; 2598 buf[bx++] = 'F';
2599 if (mod->taints & (1 << TAINT_CRAP))
2600 buf[bx++] = 'C';
2590 /* 2601 /*
2591 * TAINT_FORCED_RMMOD: could be added. 2602 * TAINT_FORCED_RMMOD: could be added.
2592 * TAINT_UNSAFE_SMP, TAINT_MACHINE_CHECK, TAINT_BAD_PAGE don't 2603 * TAINT_UNSAFE_SMP, TAINT_MACHINE_CHECK, TAINT_BAD_PAGE don't