Re: [PATCH] make LSM register functions GPLonly exports

From: Crispin Cowan (
Date: Thu Oct 17 2002 - 11:51:06 EST

Greg KH wrote:

>On Thu, Oct 17, 2002 at 03:35:05PM +0100, Christoph Hellwig wrote:
>>These exports have the power to change the implementations of all
>>syscalls and I've seen people exploiting this "feature".
>>Make the exports GPLonly (which some LSM folks agreed to
>>when it was merged initially to avoid that).
>I would really, really, really like to make this change. Unfortunatly,
>one of the current copyright holders of this file does not agree with
>Crispin, for the benifit of the lkml readers, can you explain why WireX
>does not want this change?
Here's the monster flame-war we had the last time this issue was debated

My argument against the intent of this change is that no, I do not think
we should restrict LSM modules to be GPL-only. LSM is an API for loading
externally developed packages of software, similar to syscalls. There is
benefit in permitting proprietary modules (you get additional modules
that you would not get otherwise) just as there is benefit in permitting
proprietary applications (you get Oracle, DB2, and WordPerfect).

My argument against the implementation technique of dropping in these
export GPLonly symbols is that my read of the GPL itself means that they
have no legal impact. The crux of the matter is whether a *court* finds
that LSM is "linking" (in the GPL sense) or is an "interface":

    * If it is "linking": then all LSM modules end up GPL'd, regardless
      of what any of us want.
    * If it is "an interface": then the GPL specifically *prohibits* you
      from imposing additional restrictions, such as requiring someone
      else's module to be GPL'd, to wit:
          o Clause 4: "You may not copy, modify, sublicense, or
            distribute the Program except as expressly provided under
            this License."
          o Clause 6: "... You may not impose any further restrictions
            on the recipients' exercise of the rights granted herein."

Therefore, the EXPORT_SYMBOL_GPL is just a bunch of useless bloat, with
no legal standing what so ever. If kernel module interfaces are held by
a court to be linking, then export symbols are redundant. If kernel
module interfaces are held by a court to be an interface, then the
export symbols are just wrong.


Crispin Cowan, Ph.D.
Chief Scientist, WireX            
Security Hardened Linux Distribution:
Available for purchase:

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to More majordomo info at Please read the FAQ at

This archive was generated by hypermail 2b29 : Wed Oct 23 2002 - 22:00:35 EST