diff options
author | Pavel Roskin <proski@gnu.org> | 2008-02-28 17:11:02 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-03-04 20:29:40 -0800 |
commit | 9b37ccfc637be27d9a652fcedc35e6e782c3aa78 (patch) | |
tree | 525fd97d130c630ff5e65de2d83823174986a6a5 | |
parent | 27d0483aa1ef66a8877d71b63bb97f46ab0246b2 (diff) | |
download | lwn-9b37ccfc637be27d9a652fcedc35e6e782c3aa78.tar.gz lwn-9b37ccfc637be27d9a652fcedc35e6e782c3aa78.zip |
module: allow ndiswrapper to use GPL-only symbols
A change after 2.6.24 broke ndiswrapper by accidentally removing its
access to GPL-only symbols. Revert that change and add comments about
the reasons why ndiswrapper and driverloader are treated in a special
way.
Signed-off-by: Pavel Roskin <proski@gnu.org>
Acked-by: Greg KH <gregkh@suse.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Jon Masters <jonathan@jonmasters.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | kernel/module.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/module.c b/kernel/module.c index 901cd6ac2f11..be4807fb90e4 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -1933,8 +1933,15 @@ static struct module *load_module(void __user *umod, /* Set up license info based on the info section */ set_license(mod, get_modinfo(sechdrs, infoindex, "license")); + /* + * ndiswrapper is under GPL by itself, but loads proprietary modules. + * Don't use add_taint_module(), as it would prevent ndiswrapper from + * using GPL-only symbols it needs. + */ if (strcmp(mod->name, "ndiswrapper") == 0) - add_taint_module(mod, TAINT_PROPRIETARY_MODULE); + add_taint(TAINT_PROPRIETARY_MODULE); + + /* driverloader was caught wrongly pretending to be under GPL */ if (strcmp(mod->name, "driverloader") == 0) add_taint_module(mod, TAINT_PROPRIETARY_MODULE); |