On 02/05/19 10:55, Borislav Petkov wrote: > On Thu, May 02, 2019 at 09:29:01AM -0700, Andy Lutomirski wrote: >> I'm not saying that we should export things for ZFS's benefit. But, >> as far as I know, _GPL means "this interface is sufficiently specific >> to Linux details that we think that any user must be a derived work". >> I don't think that kernel_fpu_begin() is an example of that. > But it is sufficiently specific. It is present on x86 and s390 only - > other arches don't have it. This is not what is meant usually by "sufficiently specific to Linux details". The questions to ask are: 1) Is it a Linux-only thing to run FPU or SIMD code in the kernel? The answer is clearly no. 2) Is the API form tied to Linux's implementation of the FPU? I'd argue that a simple begin/end pair is not (for example, on Windows you just xsave at the beginning and xrstor at the end). So I totally agree with Andy on this. Your observation that the API only exists on x86 and s390 has no bearing to whether the functions should be EXPORT_SYMBOL_GPL or EXPORT_SYMBOL. ARM has kernel_neon_begin/end, PPC has enable/disable_kernel_altivec. It's just that SIMD code is so arch-specific that nobody has bothered unifying the namings (or, nobody considers the different names a problem at all). Paolo