From e585e47031751f4e393e10ffd922885508b958dd Mon Sep 17 00:00:00 2001 From: Matt Mackall Date: Sun, 8 Jan 2006 01:05:24 -0800 Subject: [PATCH] tiny: Make *[ug]id16 support optional Configurable 16-bit UID and friends support This allows turning off the legacy 16 bit UID interfaces on embedded platforms. text data bss dec hex filename 3330172 529036 190556 4049764 3dcb64 vmlinux-baseline 3328268 529040 190556 4047864 3dc3f8 vmlinux From: Adrian Bunk UID16 was accidentially disabled for !EMBEDDED. Signed-off-by: Matt Mackall Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/alpha/Kconfig | 3 --- arch/arm/Kconfig | 4 ---- arch/arm26/Kconfig | 4 ---- arch/cris/Kconfig | 4 ---- arch/h8300/Kconfig | 4 ---- arch/i386/Kconfig | 4 ---- arch/m68k/Kconfig | 4 ---- arch/m68knommu/Kconfig | 4 ---- arch/parisc/Kconfig | 3 --- arch/powerpc/Kconfig | 3 --- arch/ppc/Kconfig | 3 --- arch/sh/Kconfig | 4 ---- arch/sparc/Kconfig | 4 ---- arch/sparc64/Kconfig | 5 ----- arch/um/Kconfig | 4 ---- arch/v850/Kconfig | 3 --- arch/x86_64/Kconfig | 5 ----- init/Kconfig | 9 +++++++++ kernel/sys_ni.c | 19 +++++++++++++++++++ 19 files changed, 28 insertions(+), 65 deletions(-) diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 153337ff1d7b32..eedf41bf705756 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig @@ -18,9 +18,6 @@ config MMU bool default y -config UID16 - bool - config RWSEM_GENERIC_SPINLOCK bool diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 16a5d522b2f2d9..7a74e3e5f91619 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -46,10 +46,6 @@ config MCA (and especially the web page given there) before attempting to build an MCA bus kernel. -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff --git a/arch/arm26/Kconfig b/arch/arm26/Kconfig index 1f00b3d03a076a..274e07019b4610 100644 --- a/arch/arm26/Kconfig +++ b/arch/arm26/Kconfig @@ -34,10 +34,6 @@ config FORCE_MAX_ZONEORDER int default 9 -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index e5979d68e3524d..b832619497372a 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig @@ -9,10 +9,6 @@ config MMU bool default y -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 26698a49f15358..80940d712acf76 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig @@ -21,10 +21,6 @@ config FPU bool default n -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 810ba8c37a5f70..d849c6870e3a3a 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig @@ -29,10 +29,6 @@ config MMU config SBUS bool -config UID16 - bool - default y - config GENERIC_ISA_DMA bool default y diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 1dd5d18b22019b..96b91982805316 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -10,10 +10,6 @@ config MMU bool default y -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index b96498120fe9ae..e2a6e864896080 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig @@ -17,10 +17,6 @@ config FPU bool default n -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 874a283edb958c..e77a06e9621ec5 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -19,9 +19,6 @@ config MMU config STACK_GROWSUP def_bool y -config UID16 - bool - config RWSEM_GENERIC_SPINLOCK def_bool y diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index db93dbc0e21a98..331483ace0d981 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -26,9 +26,6 @@ config MMU bool default y -config UID16 - bool - config GENERIC_HARDIRQS bool default y diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig index cc3f64c084c5e8..e396f4591d59a3 100644 --- a/arch/ppc/Kconfig +++ b/arch/ppc/Kconfig @@ -8,9 +8,6 @@ config MMU bool default y -config UID16 - bool - config GENERIC_HARDIRQS bool default y diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 64f5ae0ff96d14..8cf6d437a630e7 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -14,10 +14,6 @@ config SUPERH gaming console. The SuperH port has a home page at . -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 56c34e7fd4ee8f..f944b58cdfe79f 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -9,10 +9,6 @@ config MMU bool default y -config UID16 - bool - default y - config HIGHMEM bool default y diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index c4b7ad70cd7c5d..b775ceb4cf989e 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -309,11 +309,6 @@ config COMPAT depends on SPARC32_COMPAT default y -config UID16 - bool - depends on SPARC32_COMPAT - default y - config BINFMT_ELF32 tristate "Kernel support for 32-bit ELF binaries" depends on SPARC32_COMPAT diff --git a/arch/um/Kconfig b/arch/um/Kconfig index cdaa2ab19258e8..b4ff2e57602154 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig @@ -22,10 +22,6 @@ config SBUS config PCI bool -config UID16 - bool - default y - config GENERIC_CALIBRATE_DELAY bool default y diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig index 31086590323475..04494638b96387 100644 --- a/arch/v850/Kconfig +++ b/arch/v850/Kconfig @@ -10,9 +10,6 @@ mainmenu "uClinux/v850 (w/o MMU) Kernel Configuration" config MMU bool default n -config UID16 - bool - default n config RWSEM_GENERIC_SPINLOCK bool default y diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index 6ece645e4dbea6..4f3e925962c365 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig @@ -542,11 +542,6 @@ config SYSVIPC_COMPAT depends on COMPAT && SYSVIPC default y -config UID16 - bool - depends on IA32_EMULATION - default y - endmenu source "net/Kconfig" diff --git a/init/Kconfig b/init/Kconfig index 0eb65f2ad8c911..1a1f114a37e85e 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -228,6 +228,15 @@ config CPUSETS source "usr/Kconfig" +config UID16 + bool "Enable 16-bit UID system calls" if EMBEDDED + depends !ALPHA && !PPC && !PPC64 && !PARISC && !V850 && !ARCH_S390X + depends !X86_64 || IA32_EMULATION + depends !SPARC64 || SPARC32_COMPAT + default y + help + This enables the legacy 16-bit UID syscall wrappers. + config CC_OPTIMIZE_FOR_SIZE bool "Optimize for size (Look out for broken compilers!)" default y diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index 7a8bc7f60d914e..72cafc922d39a8 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -83,6 +83,25 @@ cond_syscall(sys_inotify_init); cond_syscall(sys_inotify_add_watch); cond_syscall(sys_inotify_rm_watch); cond_syscall(sys_migrate_pages); +cond_syscall(sys_chown16); +cond_syscall(sys_fchown16); +cond_syscall(sys_getegid16); +cond_syscall(sys_geteuid16); +cond_syscall(sys_getgid16); +cond_syscall(sys_getgroups16); +cond_syscall(sys_getresgid16); +cond_syscall(sys_getresuid16); +cond_syscall(sys_getuid16); +cond_syscall(sys_lchown16); +cond_syscall(sys_setfsgid16); +cond_syscall(sys_setfsuid16); +cond_syscall(sys_setgid16); +cond_syscall(sys_setgroups16); +cond_syscall(sys_setregid16); +cond_syscall(sys_setresgid16); +cond_syscall(sys_setresuid16); +cond_syscall(sys_setreuid16); +cond_syscall(sys_setuid16); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- cgit 1.2.3-korg