public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@digeo.com>
To: Valdis.Kletnieks@vt.edu
Cc: alan@lxorguk.ukuu.org.uk, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] 2.5.68 FUTEX support should be optional
Date: Fri, 16 May 2003 19:36:44 -0700	[thread overview]
Message-ID: <20030516193644.22907083.akpm@digeo.com> (raw)
In-Reply-To: <200305170001.h4H0113n001351@turing-police.cc.vt.edu>

Valdis.Kletnieks@vt.edu wrote:
>
> > 	Remove kernel features for embedded systems (Y/N)
>  > 
>  > its no more dangerous/hassle than the kernel debug menu
> 
>  OK.. I know I argued against making it visible to the user at all, but if it's
>  phrased like that, it will at least (hopefully) dissuade everybody who
>  doesn't know what an embedded system is.
> 
>  And after all, Linux isn't about dissuading the truly determined, nor is it
>  about making moral judgements regarding their wizardry/idiocy ratio....

I'd agree with all that.  I've updated the initial patch thusly:

General setup --->
    [*] Remove kernel features for embedded systems
          Removable kernel features for embedded systems  --->
              [ ] Enable futex support

So enabling CONFIG_EMBEDDED causes the user to be offered CONFIG_FUTEX, and
there are appropriate stern warnings everywhere.


 init/Kconfig          |   24 +++++++++++++++++++++++-
 kernel/Makefile       |    3 ++-
 kernel/compat.c       |    5 +++--
 kernel/sys.c          |    2 ++
 5 files changed, 32 insertions(+), 4 deletions(-)

diff -puN init/Kconfig~CONFIG_FUTEX init/Kconfig
--- 25/init/Kconfig~CONFIG_FUTEX	2003-05-16 19:17:34.000000000 -0700
+++ 25-akpm/init/Kconfig	2003-05-16 19:32:43.000000000 -0700
@@ -108,8 +108,31 @@ config LOG_BUF_SHIFT
 		     13 =>  8 KB
 		     12 =>  4 KB
 
+
+config EMBEDDED
+	bool "Remove kernel features for embedded systems"
+	default n
+	help
+	  This option allows certain base kernel features to be removed from
+	  the build.  This is for specialized environments which can tolerate
+	  a "non-standard" kernel.  Only use this if you really know what you
+	  are doing.
+
+menu "Removable kernel features for embedded systems"
+	depends on EMBEDDED
+
+config FUTEX
+	bool "Enable futex support"
+	depends on EMBEDDED
+	default y
+	help
+	  Disabling this option will cause the kernel to be built without
+	  support for "fast userspace mutexes".  The resulting kernel may not
+	  run glibc-based applications correctly.
+
 endmenu
 
+endmenu
 
 menu "Loadable module support"
 
@@ -181,4 +204,3 @@ config KMOD
 	  in <file:Documentation/kmod.txt>.
 
 endmenu
-
diff -puN kernel/Makefile~CONFIG_FUTEX kernel/Makefile
--- 25/kernel/Makefile~CONFIG_FUTEX	2003-05-16 19:17:34.000000000 -0700
+++ 25-akpm/kernel/Makefile	2003-05-16 19:17:34.000000000 -0700
@@ -5,9 +5,10 @@
 obj-y     = sched.o fork.o exec_domain.o panic.o printk.o profile.o \
 	    exit.o itimer.o time.o softirq.o resource.o \
 	    sysctl.o capability.o ptrace.o timer.o user.o \
-	    signal.o sys.o kmod.o workqueue.o futex.o pid.o \
+	    signal.o sys.o kmod.o workqueue.o pid.o \
 	    rcupdate.o intermodule.o extable.o params.o posix-timers.o
 
+obj-$(CONFIG_FUTEX) += futex.o
 obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
 obj-$(CONFIG_SMP) += cpu.o
 obj-$(CONFIG_LOCKMETER) += lockmeter.o
diff -puN kernel/sys.c~CONFIG_FUTEX kernel/sys.c
--- 25/kernel/sys.c~CONFIG_FUTEX	2003-05-16 19:17:34.000000000 -0700
+++ 25-akpm/kernel/sys.c	2003-05-16 19:17:34.000000000 -0700
@@ -228,6 +228,8 @@ cond_syscall(sys_shutdown)
 cond_syscall(sys_sendmsg)
 cond_syscall(sys_recvmsg)
 cond_syscall(sys_socketcall)
+cond_syscall(sys_futex)
+cond_syscall(compat_sys_futex)
 
 static int set_one_prio(struct task_struct *p, int niceval, int error)
 {
diff -puN kernel/compat.c~CONFIG_FUTEX kernel/compat.c
--- 25/kernel/compat.c~CONFIG_FUTEX	2003-05-16 19:17:34.000000000 -0700
+++ 25-akpm/kernel/compat.c	2003-05-16 19:17:34.000000000 -0700
@@ -18,6 +18,7 @@
 #include <linux/signal.h>
 #include <linux/sched.h>	/* for MAX_SCHEDULE_TIMEOUT */
 #include <linux/futex.h>	/* for FUTEX_WAIT */
+#include <linux/unistd.h>
 
 #include <asm/uaccess.h>
 
@@ -211,8 +212,7 @@ asmlinkage long compat_sys_sigprocmask(i
 	return ret;
 }
 
-extern long do_futex(unsigned long, int, int, unsigned long);
-
+#ifdef CONFIG_FUTEX
 asmlinkage long compat_sys_futex(u32 *uaddr, int op, int val,
 		struct compat_timespec *utime)
 {
@@ -226,6 +226,7 @@ asmlinkage long compat_sys_futex(u32 *ua
 	}
 	return do_futex((unsigned long)uaddr, op, val, timeout);
 }
+#endif
 
 asmlinkage long sys_setrlimit(unsigned int resource, struct rlimit *rlim);
 
diff -puN include/linux/futex.h~CONFIG_FUTEX include/linux/futex.h
--- 25/include/linux/futex.h~CONFIG_FUTEX	2003-05-16 19:17:34.000000000 -0700
+++ 25-akpm/include/linux/futex.h	2003-05-16 19:17:34.000000000 -0700
@@ -8,4 +8,6 @@
 
 extern asmlinkage long sys_futex(u32 __user *uaddr, int op, int val, struct timespec __user *utime);
 
+long do_futex(unsigned long uaddr, int op, int val, unsigned long timeout);
+
 #endif

_


  reply	other threads:[~2003-05-17  2:22 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-14 23:33 [PATCH] 2.5.68 FUTEX support should be optional Perez-Gonzalez, Inaky
2003-05-15  0:41 ` Andrew Morton
2003-05-15  0:52   ` Christopher Hoover
2003-05-15  1:00     ` Linus Torvalds
2003-05-15  1:25       ` Andrew Morton
2003-05-15  1:28         ` Linus Torvalds
2003-05-15  1:39           ` Andrew Morton
2003-05-15  1:42             ` Davide Libenzi
2003-05-15  2:02               ` Christopher Hoover
2003-05-15  2:18                 ` Davide Libenzi
2003-05-15  3:01             ` Arnaldo Carvalho de Melo
2003-05-15  3:45             ` Linus Torvalds
2003-05-15 18:14           ` Bill Davidsen
2003-05-16 21:55       ` Alan Cox
2003-05-17  0:01         ` Valdis.Kletnieks
2003-05-17  2:36           ` Andrew Morton [this message]
2003-05-17  9:40         ` Werner Almesberger
  -- strict thread matches above, loose matches on Subject: below --
2003-05-14 22:26 Chuck Ebbert
2003-05-14 22:59 ` Carl-Daniel Hailfinger
2003-05-14  4:32 Christopher Hoover
2003-05-14  6:14 ` Christoph Hellwig
2003-05-14  6:20   ` Miles Bader
2003-05-14  6:28     ` Christoph Hellwig
2003-05-14  6:32   ` Andrew Morton
2003-05-14  6:35     ` Christoph Hellwig
2003-05-14  7:52   ` Christopher Hoover
2003-05-14 19:19     ` Ulrich Drepper
2003-05-14 19:32       ` Dave Jones
2003-05-14 19:44         ` Ulrich Drepper
2003-05-14 19:50           ` Linus Torvalds
2003-05-14 20:01             ` Andrew Morton
2003-05-14 20:43             ` Davide Libenzi
2003-05-14 20:54               ` H. Peter Anvin
2003-05-14 21:05                 ` Davide Libenzi
2003-05-15  0:58             ` Christopher Hoover
2003-05-15  1:20               ` Linus Torvalds
2003-05-15  2:18                 ` Miles Bader
2003-05-15 16:47       ` Ingo Oeser
2003-05-15 17:45         ` Ulrich Drepper
2003-05-15 18:00           ` Bill Davidsen
2003-05-15 18:16             ` Ulrich Drepper
2003-05-15 18:04         ` Christopher Hoover

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030516193644.22907083.akpm@digeo.com \
    --to=akpm@digeo.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox