aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorShengqi Chen <[email protected]>2023-12-07 04:37:50 +0800
committerBrian Behlendorf <[email protected]>2024-01-16 13:27:29 -0800
commit9ecd112dc1dcdb903ebd3f1971cb1256094e73c4 (patch)
tree898de8a014c5659672f02f8d449f7058a1f1fd7f /config
parenta00231a3fc9909aa5ccf91af9c3a473665e9dea4 (diff)
compact: workaround for GPL-only symbols on riscv from Linux 6.2
Since Linux 6.2, the implementation of flush_dcache_page on riscv references GPL-only symbol `PageHuge`, breaking the build of zfs. This patch uses existing mechanism to override flush_dcache_page, removing the call to `PageHuge`. According to comments in kernel, it is only used to do some check against HugeTLB pages, which only exist in userspace. ZFS uses flush_dcache_page only on kernel pages, thus this patch will not introduce any behaviour change. See also: torvalds/linux@d33deda, openzfs/zfs@589f59b Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Shengqi Chen <[email protected]> Closes #14974 Closes #15627
Diffstat (limited to 'config')
-rw-r--r--config/kernel-flush_dcache_page.m45
-rw-r--r--config/kernel.m46
2 files changed, 9 insertions, 2 deletions
diff --git a/config/kernel-flush_dcache_page.m4 b/config/kernel-flush_dcache_page.m4
index 2340c386e..aa916c87d 100644
--- a/config/kernel-flush_dcache_page.m4
+++ b/config/kernel-flush_dcache_page.m4
@@ -1,7 +1,8 @@
dnl #
dnl # Starting from Linux 5.13, flush_dcache_page() becomes an inline
-dnl # function and may indirectly referencing GPL-only cpu_feature_keys on
-dnl # powerpc
+dnl # function and may indirectly referencing GPL-only symbols:
+dnl # on powerpc: cpu_feature_keys
+dnl # on riscv: PageHuge (added from 6.2)
dnl #
dnl #
diff --git a/config/kernel.m4 b/config/kernel.m4
index 056517a84..d25b65994 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -168,6 +168,9 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
ZFS_AC_KERNEL_SRC_CPU_HAS_FEATURE
ZFS_AC_KERNEL_SRC_FLUSH_DCACHE_PAGE
;;
+ riscv*)
+ ZFS_AC_KERNEL_SRC_FLUSH_DCACHE_PAGE
+ ;;
esac
AC_MSG_CHECKING([for available kernel interfaces])
@@ -310,6 +313,9 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
ZFS_AC_KERNEL_CPU_HAS_FEATURE
ZFS_AC_KERNEL_FLUSH_DCACHE_PAGE
;;
+ riscv*)
+ ZFS_AC_KERNEL_FLUSH_DCACHE_PAGE
+ ;;
esac
])