LINUX_IOP_MKDIR_TAKES_UMODE_T
LINUX_IOP_CREATE_TAKES_UMODE_T
LINUX_EXPORT_OP_ENCODE_FH_TAKES_INODES
+ LINUX_KMAP_ATOMIC_TAKES_NO_KM_TYPE
dnl If we are guaranteed that keyrings will work - that is
dnl a) The kernel has keyrings enabled
dolen = auio->uio_iov[curiov].iov_len - pageoff;
#if !defined(UKERNEL)
+# if defined(KMAP_ATOMIC_TAKES_NO_KM_TYPE)
+ address = kmap_atomic(pp);
+# else
address = kmap_atomic(pp, KM_USER0);
+# endif
#else
address = pp;
#endif
memcpy(address + pageoff, (char *)(rxiov[iovno].iov_base) + iovoff, dolen);
#if !defined(UKERNEL)
+# if defined(KMAP_ATOMIC_TAKES_NO_KM_TYPE)
+ kunmap_atomic(address);
+# else
kunmap_atomic(address, KM_USER0);
+# endif
#endif
}
[define if encode_fh export op takes inode arguments],
[-Werror])
])
+
+
+AC_DEFUN([LINUX_KMAP_ATOMIC_TAKES_NO_KM_TYPE], [
+ AC_CHECK_LINUX_BUILD([whether kmap_atomic takes no km_type argument],
+ [ac_cv_linux_kma_atomic_takes_no_km_type],
+ [#include <linux/highmem.h>],
+ [struct page *p = NULL;
+ kmap_atomic(p);],
+ [KMAP_ATOMIC_TAKES_NO_KM_TYPE],
+ [define if kmap_atomic takes no km_type argument],
+ [-Werror])
+])