Re: [PATCH] x86/fpu: Remove the _GPL from the kernel_fpu_begin/end() export

From: Ingo Molnar
Date: Fri May 03 2019 - 20:48:24 EST



* Jiri Kosina <jikos@xxxxxxxxxx> wrote:

> On Thu, 2 May 2019, Sebastian Andrzej Siewior wrote:
>
> > Please don't start this. We have everything _GPL that is used for FPU
> > related code and only a few functions are exported because KVM needs it.
>
> That's not completely true. There are a lot of static inlines out there,
> which basically made it possible for external modules to use FPU (in some
> way) when they had kernel_fpu_[begin|end]() available.
>
> I personally don't care about ZFS a tiny little bit; but in general, the
> current situation with _GPL and non-_GPL exports is simply not nice. It's
> not really about licensing (despite the name), it's about 'internal vs
> external', which noone is probably able to define properly.

But that's exactly what licensing *IS* about: the argument is that
'internal' interfaces are clear proof that the binary module is actually
a derived work of the kernel.

(Using regular exported symbols might still make a binary module derived
work, but it's less clear-cut.)

So don't be complicit with binary module authors who try to circumvent
the GPL by offloading the actual license violation to the end user ...

> If it would be strictly about license compatibility, that'd at least
> make us somewhat deterministic.

License compatibility is rarely deterministic to begin with, there's a
lot of grey area. Adding _GPL increases the likelihood that the module
using it has to be covered by the GPL too. In fact behavior of binary
modules seems to confirm that legal expectation: very few binary modules
are trying to circumvent _GPL symbols by ignoring the _GPL attribute.

Anyway, in terms of _GPL exports the policy has always been that if a
major author of the code asks for a symbol to be _GPL, then it should be
so, even if other authors have a different judgement.

Thanks,

Ingo