Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 May 2019 17:44:17 +0000 (UTC)
From:      Johannes Lundberg <johalun@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r347837 - in head/sys/compat/linuxkpi/common: include/linux src
Message-ID:  <201905161744.x4GHiH4H016449@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: johalun
Date: Thu May 16 17:44:17 2019
New Revision: 347837
URL: https://svnweb.freebsd.org/changeset/base/347837

Log:
  LinuxKPI: Update access_ok macro for v5.0.
  
  Check LINUXKPI_VERSION macro for backwards compatibility.
  It's recommended to update any drivers that depend on the older KPI
  so we can deprecate < 5.0 code as we update to newer Linux version.
  This patch is part of D19565
  
  Reviewed by:	hps
  Approved by:	imp (mentor), hps
  MFC after:	1 week

Modified:
  head/sys/compat/linuxkpi/common/include/linux/uaccess.h
  head/sys/compat/linuxkpi/common/src/linux_compat.c

Modified: head/sys/compat/linuxkpi/common/include/linux/uaccess.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/uaccess.h	Thu May 16 17:41:16 2019	(r347836)
+++ head/sys/compat/linuxkpi/common/include/linux/uaccess.h	Thu May 16 17:44:17 2019	(r347837)
@@ -60,12 +60,17 @@
 #define	get_user(_x, _p)	linux_copyin((_p), &(_x), sizeof(*(_p)))
 #define	put_user(_x, _p)	__put_user(_x, _p)
 #define	clear_user(...)		linux_clear_user(__VA_ARGS__)
-#define	access_ok(...)		linux_access_ok(__VA_ARGS__)
 
+#if defined(LINUXKPI_VERSION) && LINUXKPI_VERSION >= 50000
+#define	access_ok(a,b)		linux_access_ok(a,b)
+#else
+#define	access_ok(a,b,c)	linux_access_ok(b,c)
+#endif
+
 extern int linux_copyin(const void *uaddr, void *kaddr, size_t len);
 extern int linux_copyout(const void *kaddr, void *uaddr, size_t len);
 extern size_t linux_clear_user(void *uaddr, size_t len);
-extern int linux_access_ok(int rw, const void *uaddr, size_t len);
+extern int linux_access_ok(const void *uaddr, size_t len);
 
 /*
  * NOTE: Each pagefault_disable() call must have a corresponding

Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c
==============================================================================
--- head/sys/compat/linuxkpi/common/src/linux_compat.c	Thu May 16 17:41:16 2019	(r347836)
+++ head/sys/compat/linuxkpi/common/src/linux_compat.c	Thu May 16 17:44:17 2019	(r347837)
@@ -897,7 +897,7 @@ linux_clear_user(void *_uaddr, size_t _len)
 }
 
 int
-linux_access_ok(int rw, const void *uaddr, size_t len)
+linux_access_ok(const void *uaddr, size_t len)
 {
 	uintptr_t saddr;
 	uintptr_t eaddr;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201905161744.x4GHiH4H016449>