Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Oct 2019 10:28:08 +0000 (UTC)
From:      Yuri Pankov <yuripv@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r353724 - head/sys/compat/linux
Message-ID:  <201910181028.x9IAS8Du024670@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yuripv
Date: Fri Oct 18 10:28:08 2019
New Revision: 353724
URL: https://svnweb.freebsd.org/changeset/base/353724

Log:
  linux: provide just one instance of futex_list
  
  Move futex_list definition to linux.c which is included once
  in linux.ko (i386) and in linux_common.ko (amd64 and aarch64)
  allowing 32/64 bit linux programs to access the same futexes
  in the latter case.
  
  PR:		240989
  Reviewed by:	dchagin
  Differential Revision:	https://reviews.freebsd.org/D22073

Modified:
  head/sys/compat/linux/linux.c
  head/sys/compat/linux/linux.h
  head/sys/compat/linux/linux_futex.c
  head/sys/compat/linux/linux_futex.h

Modified: head/sys/compat/linux/linux.c
==============================================================================
--- head/sys/compat/linux/linux.c	Fri Oct 18 09:09:32 2019	(r353723)
+++ head/sys/compat/linux/linux.c	Fri Oct 18 10:28:08 2019	(r353724)
@@ -51,6 +51,8 @@ __FBSDID("$FreeBSD$");
 #include <compat/linux/linux_common.h>
 #include <compat/linux/linux_util.h>
 
+struct futex_list futex_list;
+
 CTASSERT(LINUX_IFNAMSIZ == IFNAMSIZ);
 
 static int bsd_to_linux_sigtbl[LINUX_SIGTBLSZ] = {

Modified: head/sys/compat/linux/linux.h
==============================================================================
--- head/sys/compat/linux/linux.h	Fri Oct 18 09:09:32 2019	(r353723)
+++ head/sys/compat/linux/linux.h	Fri Oct 18 10:28:08 2019	(r353724)
@@ -140,4 +140,6 @@ void bsd_to_linux_sigset(sigset_t *, l_sigset_t *);
 int linux_to_bsd_signal(int sig);
 int bsd_to_linux_signal(int sig);
 
+extern LIST_HEAD(futex_list, futex) futex_list;
+
 #endif /* _LINUX_MI_H_ */

Modified: head/sys/compat/linux/linux_futex.c
==============================================================================
--- head/sys/compat/linux/linux_futex.c	Fri Oct 18 09:09:32 2019	(r353723)
+++ head/sys/compat/linux/linux_futex.c	Fri Oct 18 10:28:08 2019	(r353724)
@@ -207,8 +207,6 @@ struct futex {
 	TAILQ_HEAD(lf_waiting_proc, waiting_proc) f_waiting_proc;
 };
 
-struct futex_list futex_list;
-
 #define FUTEX_LOCK(f)		mtx_lock(&(f)->f_lck)
 #define FUTEX_LOCKED(f)		mtx_owned(&(f)->f_lck)
 #define FUTEX_UNLOCK(f)		mtx_unlock(&(f)->f_lck)

Modified: head/sys/compat/linux/linux_futex.h
==============================================================================
--- head/sys/compat/linux/linux_futex.h	Fri Oct 18 09:09:32 2019	(r353723)
+++ head/sys/compat/linux/linux_futex.h	Fri Oct 18 10:28:08 2019	(r353724)
@@ -38,7 +38,6 @@
 #ifndef _LINUX_FUTEX_H
 #define _LINUX_FUTEX_H
 
-extern LIST_HEAD(futex_list, futex) futex_list;
 extern struct mtx futex_mtx;
 
 #define LINUX_FUTEX_WAIT		 0



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