Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Oct 2020 15:58:16 +0000 (UTC)
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r366809 - head/sys/compat/linux
Message-ID:  <202010181558.09IFwGJZ018288@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trasz
Date: Sun Oct 18 15:58:16 2020
New Revision: 366809
URL: https://svnweb.freebsd.org/changeset/base/366809

Log:
  Add compat.linux.dummy_rlimits, and disable by default.
  
  Turns out the dummy rlimits fix prlimit(1), but break su(8)
  (login-1:4.5-1ubuntu2) - although not sudo(8), for some reason.
  
  MFC after:	2 weeks
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D26814

Modified:
  head/sys/compat/linux/linux_mib.c
  head/sys/compat/linux/linux_mib.h
  head/sys/compat/linux/linux_misc.c

Modified: head/sys/compat/linux/linux_mib.c
==============================================================================
--- head/sys/compat/linux/linux_mib.c	Sun Oct 18 15:56:47 2020	(r366808)
+++ head/sys/compat/linux/linux_mib.c	Sun Oct 18 15:58:16 2020	(r366809)
@@ -77,6 +77,11 @@ SYSCTL_INT(_compat_linux, OID_AUTO, default_stacksize,
     &linux_default_stacksize, 0,
     "Default soft stack size resource limit, or -1 for unlimited");
 
+int linux_dummy_rlimits = 0;
+SYSCTL_INT(_compat_linux, OID_AUTO, dummy_rlimits, CTLFLAG_RWTUN,
+    &linux_dummy_rlimits, 0,
+    "Return dummy values for unsupported Linux-specific rlimits");
+
 int linux_ignore_ip_recverr = 1;
 SYSCTL_INT(_compat_linux, OID_AUTO, ignore_ip_recverr, CTLFLAG_RWTUN,
     &linux_ignore_ip_recverr, 0, "Ignore enabling IP_RECVERR");

Modified: head/sys/compat/linux/linux_mib.h
==============================================================================
--- head/sys/compat/linux/linux_mib.h	Sun Oct 18 15:56:47 2020	(r366808)
+++ head/sys/compat/linux/linux_mib.h	Sun Oct 18 15:58:16 2020	(r366809)
@@ -65,6 +65,7 @@ int	linux_kernver(struct thread *td);
 extern int linux_debug;
 extern int linux_default_openfiles;
 extern int linux_default_stacksize;
+extern int linux_dummy_rlimits;
 extern int linux_ignore_ip_recverr;
 extern int linux_preserve_vstatus;
 extern bool linux_map_sched_prio;

Modified: head/sys/compat/linux/linux_misc.c
==============================================================================
--- head/sys/compat/linux/linux_misc.c	Sun Oct 18 15:56:47 2020	(r366808)
+++ head/sys/compat/linux/linux_misc.c	Sun Oct 18 15:58:16 2020	(r366809)
@@ -1377,6 +1377,9 @@ static bool
 linux_get_dummy_limit(l_uint resource, struct rlimit *rlim)
 {
 
+	if (linux_dummy_rlimits == 0)
+		return (false);
+
 	switch (resource) {
 	case LINUX_RLIMIT_LOCKS:
 	case LINUX_RLIMIT_SIGPENDING:



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