diff options
author | Andi Kleen <ak@suse.de> | 2007-03-16 16:07:36 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2007-03-16 16:07:36 -0400 |
commit | 302cf930cbcc6ca24d7e00cffde3d93534ea5405 (patch) | |
tree | 105b0157caeaa81717ad2a446ccd36e203fc8123 /arch/i386/kernel/vmi.c | |
parent | a9bc3bfd1226c3f09cf321374f934b3892929872 (diff) |
[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/i386/kernel/vmi.c')
-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 fbf45fa08320..fb07a1aad225 100644 --- a/arch/i386/kernel/vmi.c +++ b/arch/i386/kernel/vmi.c | |||
@@ -23,7 +23,6 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/license.h> | ||
27 | #include <linux/cpu.h> | 26 | #include <linux/cpu.h> |
28 | #include <linux/bootmem.h> | 27 | #include <linux/bootmem.h> |
29 | #include <linux/mm.h> | 28 | #include <linux/mm.h> |
@@ -48,7 +47,6 @@ typedef u64 __attribute__((regparm(2))) (VROMLONGFUNC)(int); | |||
48 | (((VROMLONGFUNC *)(rom->func)) (arg)) | 47 | (((VROMLONGFUNC *)(rom->func)) (arg)) |
49 | 48 | ||
50 | static struct vrom_header *vmi_rom; | 49 | static struct vrom_header *vmi_rom; |
51 | static int license_gplok; | ||
52 | static int disable_pge; | 50 | static int disable_pge; |
53 | static int disable_pse; | 51 | static int disable_pse; |
54 | static int disable_sep; | 52 | static int disable_sep; |
@@ -629,13 +627,14 @@ static inline int __init check_vmi_rom(struct vrom_header *rom) | |||
629 | rom->api_version_maj, rom->api_version_min, | 627 | rom->api_version_maj, rom->api_version_min, |
630 | pci->rom_version_maj, pci->rom_version_min); | 628 | pci->rom_version_maj, pci->rom_version_min); |
631 | 629 | ||
632 | license_gplok = license_is_gpl_compatible(license); | 630 | /* Don't allow BSD/MIT here for now because we don't want to end up |
633 | if (!license_gplok) { | 631 | with any binary only shim layers */ |
634 | printk(KERN_WARNING "VMI: ROM license '%s' taints kernel... " | 632 | if (strcmp(license, "GPL") && strcmp(license, "GPL v2")) { |
635 | "inlining disabled\n", | 633 | printk(KERN_WARNING "VMI: Non GPL license `%s' found for ROM. Not used.\n", |
636 | license); | 634 | license); |
637 | add_taint(TAINT_PROPRIETARY_MODULE); | 635 | return 0; |
638 | } | 636 | } |
637 | |||
639 | return 1; | 638 | return 1; |
640 | } | 639 | } |
641 | 640 | ||