From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-commits+bounces-1595596-garchives=archives.gentoo.org@lists.gentoo.org> Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3A06115838C for <garchives@archives.gentoo.org>; Mon, 29 Jan 2024 16:08:14 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 5F15CE2A2C; Mon, 29 Jan 2024 16:08:13 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 31D7AE2A2C for <gentoo-commits@lists.gentoo.org>; Mon, 29 Jan 2024 16:08:13 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 240D23432D6 for <gentoo-commits@lists.gentoo.org>; Mon, 29 Jan 2024 16:08:12 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id AA7EAEC0 for <gentoo-commits@lists.gentoo.org>; Mon, 29 Jan 2024 16:08:10 +0000 (UTC) From: "Sam James" <sam@gentoo.org> To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org> Message-ID: <1706544478.1d106b3c4cc3d9d10e558558d4fbffbdf9c694ad.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-fs/zfs-kmod/, sys-fs/zfs-kmod/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-fs/zfs-kmod/files/zfs-kmod-2.2.2-arm64-neon.patch sys-fs/zfs-kmod/zfs-kmod-2.2.2.ebuild X-VCS-Directories: sys-fs/zfs-kmod/ sys-fs/zfs-kmod/files/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 1d106b3c4cc3d9d10e558558d4fbffbdf9c694ad X-VCS-Branch: master Date: Mon, 29 Jan 2024 16:08:10 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: ef2f2a5d-4083-418a-918b-fe35c91d293c X-Archives-Hash: 9bef39f9550d222b1aa56d58c7d2ba37 commit: 1d106b3c4cc3d9d10e558558d4fbffbdf9c694ad Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Mon Jan 29 16:07:58 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Jan 29 16:07:58 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d106b3c sys-fs/zfs-kmod: fix arm64 neon compat w/ >=linux-6.2 Closes: https://bugs.gentoo.org/904657 Signed-off-by: Sam James <sam <AT> gentoo.org> .../zfs-kmod/files/zfs-kmod-2.2.2-arm64-neon.patch | 100 +++++++++++++++++++++ sys-fs/zfs-kmod/zfs-kmod-2.2.2.ebuild | 3 +- 2 files changed, 102 insertions(+), 1 deletion(-) diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-2.2.2-arm64-neon.patch b/sys-fs/zfs-kmod/files/zfs-kmod-2.2.2-arm64-neon.patch new file mode 100644 index 000000000000..54121adcdca3 --- /dev/null +++ b/sys-fs/zfs-kmod/files/zfs-kmod-2.2.2-arm64-neon.patch @@ -0,0 +1,100 @@ +https://bugs.gentoo.org/904657 +https://github.com/openzfs/zfs/issues/14555 +https://github.com/openzfs/zfs/commit/976bf9b6a61919638d42ed79cd207132785d128a + +From 976bf9b6a61919638d42ed79cd207132785d128a Mon Sep 17 00:00:00 2001 +From: Shengqi Chen <harry-chen@outlook.com> +Date: Tue, 9 Jan 2024 08:05:24 +0800 +Subject: [PATCH] Linux 6.2 compat: add check for kernel_neon_* availability + +This patch adds check for `kernel_neon_*` symbols on arm and arm64 +platforms to address the following issues: + +1. Linux 6.2+ on arm64 has exported them with `EXPORT_SYMBOL_GPL`, so + license compatibility must be checked before use. +2. On both arm and arm64, the definitions of these symbols are guarded + by `CONFIG_KERNEL_MODE_NEON`, but their declarations are still + present. Checking in configuration phase only leads to MODPOST + errors (undefined references). + +Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> +Signed-off-by: Shengqi Chen <harry-chen@outlook.com> +Closes #15711 +Closes #14555 +Closes: #15401 +--- a/config/kernel-fpu.m4 ++++ b/config/kernel-fpu.m4 +@@ -79,6 +79,12 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_FPU], [ + __kernel_fpu_end(); + ], [], [ZFS_META_LICENSE]) + ++ ZFS_LINUX_TEST_SRC([kernel_neon], [ ++ #include <asm/neon.h> ++ ], [ ++ kernel_neon_begin(); ++ kernel_neon_end(); ++ ], [], [ZFS_META_LICENSE]) + ]) + + AC_DEFUN([ZFS_AC_KERNEL_FPU], [ +@@ -105,9 +111,20 @@ AC_DEFUN([ZFS_AC_KERNEL_FPU], [ + AC_DEFINE(KERNEL_EXPORTS_X86_FPU, 1, + [kernel exports FPU functions]) + ],[ +- AC_MSG_RESULT(internal) +- AC_DEFINE(HAVE_KERNEL_FPU_INTERNAL, 1, +- [kernel fpu internal]) ++ dnl # ++ dnl # ARM neon symbols (only on arm and arm64) ++ dnl # could be GPL-only on arm64 after Linux 6.2 ++ dnl # ++ ZFS_LINUX_TEST_RESULT([kernel_neon_license],[ ++ AC_MSG_RESULT(kernel_neon_*) ++ AC_DEFINE(HAVE_KERNEL_NEON, 1, ++ [kernel has kernel_neon_* functions]) ++ ],[ ++ # catch-all ++ AC_MSG_RESULT(internal) ++ AC_DEFINE(HAVE_KERNEL_FPU_INTERNAL, 1, ++ [kernel fpu internal]) ++ ]) + ]) + ]) + ]) +--- a/include/os/linux/kernel/linux/simd_aarch64.h ++++ b/include/os/linux/kernel/linux/simd_aarch64.h +@@ -71,9 +71,15 @@ + #define ID_AA64PFR0_EL1 sys_reg(3, 0, 0, 1, 0) + #define ID_AA64ISAR0_EL1 sys_reg(3, 0, 0, 6, 0) + ++#if (defined(HAVE_KERNEL_NEON) && defined(CONFIG_KERNEL_MODE_NEON)) + #define kfpu_allowed() 1 + #define kfpu_begin() kernel_neon_begin() + #define kfpu_end() kernel_neon_end() ++#else ++#define kfpu_allowed() 0 ++#define kfpu_begin() do {} while (0) ++#define kfpu_end() do {} while (0) ++#endif + #define kfpu_init() (0) + #define kfpu_fini() do {} while (0) + +--- a/include/os/linux/kernel/linux/simd_arm.h ++++ b/include/os/linux/kernel/linux/simd_arm.h +@@ -53,9 +53,15 @@ + #include <asm/elf.h> + #include <asm/hwcap.h> + ++#if (defined(HAVE_KERNEL_NEON) && defined(CONFIG_KERNEL_MODE_NEON)) + #define kfpu_allowed() 1 + #define kfpu_begin() kernel_neon_begin() + #define kfpu_end() kernel_neon_end() ++#else ++#define kfpu_allowed() 0 ++#define kfpu_begin() do {} while (0) ++#define kfpu_end() do {} while (0) ++#endif + #define kfpu_init() (0) + #define kfpu_fini() do {} while (0) + + diff --git a/sys-fs/zfs-kmod/zfs-kmod-2.2.2.ebuild b/sys-fs/zfs-kmod/zfs-kmod-2.2.2.ebuild index 18f9e126cc32..863395ebfef3 100644 --- a/sys-fs/zfs-kmod/zfs-kmod-2.2.2.ebuild +++ b/sys-fs/zfs-kmod/zfs-kmod-2.2.2.ebuild @@ -60,6 +60,7 @@ PDEPEND="dist-kernel? ( ~sys-fs/zfs-${PV}[dist-kernel] )" PATCHES=( "${FILESDIR}"/${PN}-2.1.11-gentoo.patch + "${FILESDIR}"/${PN}-2.2.2-arm64-neon.patch ) pkg_pretend() { @@ -103,7 +104,7 @@ pkg_setup() { "Linux ${kv_major_max}.${kv_minor_max} is the latest supported version" fi - linux-mod-r1_pkg_setup + #linux-mod-r1_pkg_setup } src_prepare() {