From 13f31988c3dd8971035b4b08969cda3fbdcc7614 Mon Sep 17 00:00:00 2001 From: Seth Forshee Date: Tue, 22 Aug 2017 07:59:11 -0500 Subject: [PATCH] Linux: Include linux/uaccess.h rather than asm/uaccess.h if present Starting with Linux 4.12 there is a module build error on s390 due to asm/uaccess.h using a macro defined in the common header. The common header has been around since 2.6.18 and has always included asm/uaccess.h, so switch to using the common header whenever it is present. Signed-off-by: Seth Forshee Reviewed-on: https://gerrit.openafs.org/12714 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot (cherry picked from commit 962f4838dc461567d896304f617a0923745d13d5) Reviewed-on: https://gerrit.openafs.org/12718 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Michael Meffie Reviewed-by: Benjamin Kaduk (cherry picked from commit 7073408688da021864bba59c592e8924e05adb91) Change-Id: Ie58cfcf48aa80c18f19cbfc65f87363b154e96ee Reviewed-on: https://gerrit.openafs.org/12717 Tested-by: BuildBot Reviewed-by: Michael Meffie Reviewed-by: Benjamin Kaduk Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand --- acinclude.m4 | 1 + src/afs/LINUX/osi_machdep.h | 4 ++++ src/afs/sysincludes.h | 6 +++++- src/rx/LINUX/rx_knet.c | 4 ++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/acinclude.m4 b/acinclude.m4 index ee40b4109..d80cacd78 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -877,6 +877,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) AC_CHECK_LINUX_HEADER([semaphore.h]) AC_CHECK_LINUX_HEADER([seq_file.h]) AC_CHECK_LINUX_HEADER([sched/signal.h]) + AC_CHECK_LINUX_HEADER([uaccess.h]) dnl Type existence checks AC_CHECK_LINUX_TYPE([struct vfs_path], [dcache.h]) diff --git a/src/afs/LINUX/osi_machdep.h b/src/afs/LINUX/osi_machdep.h index 9008f7732..ce8cabf6e 100644 --- a/src/afs/LINUX/osi_machdep.h +++ b/src/afs/LINUX/osi_machdep.h @@ -123,7 +123,11 @@ wakeup(void *event) #define IsAfsVnode(V) ((V)->i_sb == afs_globalVFS) /* test superblock instead */ #define SetAfsVnode(V) /* unnecessary */ +#if defined(HAVE_LINUX_UACCESS_H) +#include +#else #include +#endif #define copyin(F, T, C) (copy_from_user ((char*)(T), (char*)(F), (C)) > 0 ? EFAULT : 0) static inline long copyinstr(char *from, char *to, int count, int *length) { diff --git a/src/afs/sysincludes.h b/src/afs/sysincludes.h index c2abb373a..1898e1e28 100644 --- a/src/afs/sysincludes.h +++ b/src/afs/sysincludes.h @@ -151,7 +151,11 @@ struct coda_inode_info { struct xfs_inode_info { }; # endif -# include +# if defined(HAVE_LINUX_UACCESS_H) +# include +# else +# include +# endif # include # include # include diff --git a/src/rx/LINUX/rx_knet.c b/src/rx/LINUX/rx_knet.c index 1a5cfdefa..29e73a142 100644 --- a/src/rx/LINUX/rx_knet.c +++ b/src/rx/LINUX/rx_knet.c @@ -18,7 +18,11 @@ #include #include "rx/rx_kcommon.h" +#if defined(HAVE_LINUX_UACCESS_H) +#include +#else #include +#endif #ifdef ADAPT_PMTU #include #include -- 2.39.5