Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 May 2019 15:37:55 +0000 (UTC)
From:      Johannes Lundberg <johalun@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r348240 - in stable/12/sys/compat/linuxkpi/common: include/linux src
Message-ID:  <201905241537.x4OFbtLN052287@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: johalun
Date: Fri May 24 15:37:54 2019
New Revision: 348240
URL: https://svnweb.freebsd.org/changeset/base/348240

Log:
  MFC r347837:
  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

Modified:
  stable/12/sys/compat/linuxkpi/common/include/linux/uaccess.h
  stable/12/sys/compat/linuxkpi/common/src/linux_compat.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/compat/linuxkpi/common/include/linux/uaccess.h
==============================================================================
--- stable/12/sys/compat/linuxkpi/common/include/linux/uaccess.h	Fri May 24 15:21:23 2019	(r348239)
+++ stable/12/sys/compat/linuxkpi/common/include/linux/uaccess.h	Fri May 24 15:37:54 2019	(r348240)
@@ -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: stable/12/sys/compat/linuxkpi/common/src/linux_compat.c
==============================================================================
--- stable/12/sys/compat/linuxkpi/common/src/linux_compat.c	Fri May 24 15:21:23 2019	(r348239)
+++ stable/12/sys/compat/linuxkpi/common/src/linux_compat.c	Fri May 24 15:37:54 2019	(r348240)
@@ -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?201905241537.x4OFbtLN052287>