kmap_atomic no longer requires a KM_TYPE argument. Test for this
and adjust the affected code.
Reviewed-on: http://gerrit.openafs.org/7981
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit
049c485b4a39ba510035788b4959d839ef668c55)
Change-Id: Iac8be7901da4b277864b1b6cc987cf5087992789
Reviewed-on: http://gerrit.openafs.org/8078
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: Ken Dreyer <ktdreyer@ktdreyer.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
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])
+])