Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 302cf930 authored by Andi Kleen's avatar Andi Kleen Committed by Andi Kleen
Browse files

[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: default avatarZachary Amsden <zach@vmware.com>
Acked-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
parent a9bc3bfd
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -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",
	/* 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);
                add_taint(TAINT_PROPRIETARY_MODULE);
		return 0;
	}

	return 1;
}