diff options
author | Andi Kleen <ak@suse.de> | 2007-03-16 20:07:36 (GMT) |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2007-03-16 20:07:36 (GMT) |
commit | 302cf930cbcc6ca24d7e00cffde3d93534ea5405 (patch) | |
tree | 105b0157caeaa81717ad2a446ccd36e203fc8123 /arch | |
parent | a9bc3bfd1226c3f09cf321374f934b3892929872 (diff) | |
download | linux-302cf930cbcc6ca24d7e00cffde3d93534ea5405.tar.xz |
[PATCH] i386: Enforce GPLness of VMI ROM
VMI ROMs are pretty intimate to the kernel, so enforce their GPLness.
No \0 tricks checking for now
This rules out BSD/MIT modules for now, sorry -- the trouble is those
could come without source.
Acked-by: Zachary Amsden <zach@vmware.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/i386/kernel/vmi.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/i386/kernel/vmi.c b/arch/i386/kernel/vmi.c index fbf45fa..fb07a1a 100644 --- a/arch/i386/kernel/vmi.c +++ b/arch/i386/kernel/vmi.c @@ -23,7 +23,6 @@ */ #include <linux/module.h> -#include <linux/license.h> #include <linux/cpu.h> #include <linux/bootmem.h> #include <linux/mm.h> @@ -48,7 +47,6 @@ typedef u64 __attribute__((regparm(2))) (VROMLONGFUNC)(int); (((VROMLONGFUNC *)(rom->func)) (arg)) static struct vrom_header *vmi_rom; -static int license_gplok; static int disable_pge; static int disable_pse; static int disable_sep; @@ -629,13 +627,14 @@ static inline int __init check_vmi_rom(struct vrom_header *rom) rom->api_version_maj, rom->api_version_min, pci->rom_version_maj, pci->rom_version_min); - license_gplok = license_is_gpl_compatible(license); - if (!license_gplok) { - printk(KERN_WARNING "VMI: ROM license '%s' taints kernel... " - "inlining disabled\n", - license); - add_taint(TAINT_PROPRIETARY_MODULE); - } + /* Don't allow BSD/MIT here for now because we don't want to end up + with any binary only shim layers */ + if (strcmp(license, "GPL") && strcmp(license, "GPL v2")) { + printk(KERN_WARNING "VMI: Non GPL license `%s' found for ROM. Not used.\n", + license); + return 0; + } + return 1; } |