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

From: Sebastian Andrzej Siewior
Date: Thu May 02 2019 - 11:41:59 EST


On 2019-05-02 07:42:14 [-0700], Andy Lutomirski wrote:
> The FPU is not a super-Linuxy internal detail, so remove the _GPL
> from its export. Without something like this patch, it's impossible
> for even highly license-respecting non-GPL modules to use the FPU,
> which seems silly to me. After all, the FPU is a CPU feature, not
> really a kernel feature at all.
>
> Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> Cc:: Borislav Petkov <bp@xxxxxxx>
> Cc: Rik van Riel <riel@xxxxxxxxxxx>
> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> Cc: "Jason A. Donenfeld" <Jason@xxxxxxxxx>
> Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
> Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Nicolai Stange <nstange@xxxxxxx>
> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> Cc: Radim KrÄmÃÅ <rkrcmar@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: x86@xxxxxxxxxx
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: 12209993e98c ("x86/fpu: Don't export __kernel_fpu_{begin,end}()")
> Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
> ---
>
> This fixes a genuine annoyance for ZFS on Linux. Regardless of what
> one may think about the people who distribute ZFS on Linux
> *binaries*, as far as I know, the source and the users who build it
> themselves are entirely respectful of everyone's license. I have no
> problem with EXPORT_SYMBOL_GPL() in general, but let's please avoid
> using it for things that aren't fundamentally Linux internals.

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.
Also with the recent FPU rework it is much easier to get this wrong so I
would not want for any OOT code to mess with it.

And again: It does not change whether or not ZFS can be used on Linux
(excluding the license issue). They simply can't use crc32 with their
SSE assembly and this is it.

Sebastian