xref: /freebsd-src/sys/contrib/openzfs/config/kernel-copy-from-user-inatomic.m4 (revision 716fd348e01c5f2ba125f878a634a753436c2994)
1*716fd348SMartin Matuskadnl #
2*716fd348SMartin Matuskadnl # On certain architectures `__copy_from_user_inatomic`
3*716fd348SMartin Matuskadnl # is a GPL exported variable and cannot be used by OpenZFS.
4*716fd348SMartin Matuskadnl #
5*716fd348SMartin Matuska
6*716fd348SMartin Matuskadnl #
7*716fd348SMartin Matuskadnl # Checking if `__copy_from_user_inatomic` is available.
8*716fd348SMartin Matuskadnl #
9*716fd348SMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_SRC___COPY_FROM_USER_INATOMIC], [
10*716fd348SMartin Matuska	ZFS_LINUX_TEST_SRC([__copy_from_user_inatomic], [
11*716fd348SMartin Matuska		#include <linux/uaccess.h>
12*716fd348SMartin Matuska	], [
13*716fd348SMartin Matuska		int result __attribute__ ((unused)) = __copy_from_user_inatomic(NULL, NULL, 0);
14*716fd348SMartin Matuska	], [], [ZFS_META_LICENSE])
15*716fd348SMartin Matuska])
16*716fd348SMartin Matuska
17*716fd348SMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL___COPY_FROM_USER_INATOMIC], [
18*716fd348SMartin Matuska	AC_MSG_CHECKING([whether __copy_from_user_inatomic is available])
19*716fd348SMartin Matuska	ZFS_LINUX_TEST_RESULT([__copy_from_user_inatomic_license], [
20*716fd348SMartin Matuska		AC_MSG_RESULT(yes)
21*716fd348SMartin Matuska	], [
22*716fd348SMartin Matuska		AC_MSG_RESULT(no)
23*716fd348SMartin Matuska		AC_MSG_ERROR([
24*716fd348SMartin Matuska	*** The `__copy_from_user_inatomic()` Linux kernel function is
25*716fd348SMartin Matuska	*** incompatible with the CDDL license and will prevent the module
26*716fd348SMartin Matuska	*** linking stage from succeeding.  OpenZFS cannot be compiled.
27*716fd348SMartin Matuska		])
28*716fd348SMartin Matuska	])
29*716fd348SMartin Matuska])
30