diff --git a/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions.patch b/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions_4_14.patch similarity index 100% rename from pkgs/os-specific/linux/kernel/export_kernel_fpu_functions.patch rename to pkgs/os-specific/linux/kernel/export_kernel_fpu_functions_4_14.patch diff --git a/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions_5_3.patch b/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions_5_3.patch new file mode 100644 index 000000000000..dc9ca64bdc1f --- /dev/null +++ b/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions_5_3.patch @@ -0,0 +1,42 @@ +From 1e010beda2896bdf3082fb37a3e49f8ce20e04d8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= +Date: Thu, 2 May 2019 05:28:08 +0100 +Subject: [PATCH] x86/fpu: Export kernel_fpu_{begin,end}() with + EXPORT_SYMBOL_GPL +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We need these symbols in zfs as the fpu implementation breaks userspace: + +https://github.com/zfsonlinux/zfs/issues/9346 +Signed-off-by: Jörg Thalheim +--- + arch/x86/kernel/fpu/core.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c +index 12c70840980e..352538b3bb5d 100644 +--- a/arch/x86/kernel/fpu/core.c ++++ b/arch/x86/kernel/fpu/core.c +@@ -102,7 +102,7 @@ void kernel_fpu_begin(void) + } + __cpu_invalidate_fpregs_state(); + } +-EXPORT_SYMBOL_GPL(kernel_fpu_begin); ++EXPORT_SYMBOL(kernel_fpu_begin); + + void kernel_fpu_end(void) + { +@@ -111,7 +111,7 @@ void kernel_fpu_end(void) + this_cpu_write(in_kernel_fpu, false); + preempt_enable(); + } +-EXPORT_SYMBOL_GPL(kernel_fpu_end); ++EXPORT_SYMBOL(kernel_fpu_end); + + /* + * Save the FPU state (mark it for reload if necessary): +-- +2.23.0 + diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index b80320db282e..fa5b168389bc 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -59,8 +59,14 @@ }; export_kernel_fpu_functions = { - name = "export_kernel_fpu_functions"; - patch = ./export_kernel_fpu_functions.patch; + "4.14" = { + name = "export_kernel_fpu_functions"; + patch = ./export_kernel_fpu_functions_4_14.patch; + }; + "5.3" = { + name = "export_kernel_fpu_functions"; + patch = ./export_kernel_fpu_functions_5_3.patch; + }; }; # patches from https://lkml.org/lkml/2019/7/15/1748 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3cd3577c60a6..614cd4e4e40d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15821,7 +15821,7 @@ in # when adding a new linux version kernelPatches.cpu-cgroup-v2."4.11" kernelPatches.modinst_arg_list_too_long - kernelPatches.export_kernel_fpu_functions + kernelPatches.export_kernel_fpu_functions."4.14" ]; }; @@ -15829,7 +15829,7 @@ in kernelPatches = [ kernelPatches.bridge_stp_helper kernelPatches.modinst_arg_list_too_long - kernelPatches.export_kernel_fpu_functions + kernelPatches.export_kernel_fpu_functions."4.14" ]; }; @@ -15837,12 +15837,15 @@ in kernelPatches = [ kernelPatches.bridge_stp_helper kernelPatches.modinst_arg_list_too_long - kernelPatches.export_kernel_fpu_functions + kernelPatches.export_kernel_fpu_functions."4.14" ]; }; linux_5_3 = callPackage ../os-specific/linux/kernel/linux-5.3.nix { - kernelPatches = [ kernelPatches.bridge_stp_helper ]; + kernelPatches = [ + kernelPatches.bridge_stp_helper + kernelPatches.export_kernel_fpu_functions."5.3" + ]; }; linux_testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {