From: Matt Mackall 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 Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton --- dev/null | 0 s390/Kconfig | 0 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 | 8 ++++++++ kernel/sys_ni.c | 19 +++++++++++++++++++ 21 files changed, 27 insertions(+), 65 deletions(-) diff -puN arch/alpha/Kconfig~tiny-make-id16-support-optional arch/alpha/Kconfig --- devel/arch/alpha/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/alpha/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -18,9 +18,6 @@ config MMU bool default y -config UID16 - bool - config RWSEM_GENERIC_SPINLOCK bool diff -puN arch/arm26/Kconfig~tiny-make-id16-support-optional arch/arm26/Kconfig --- devel/arch/arm26/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/arm26/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -34,10 +34,6 @@ config FORCE_MAX_ZONEORDER int default 9 -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/arm/Kconfig~tiny-make-id16-support-optional arch/arm/Kconfig --- devel/arch/arm/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/arm/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -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 -puN arch/cris/Kconfig~tiny-make-id16-support-optional arch/cris/Kconfig --- devel/arch/cris/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/cris/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -9,10 +9,6 @@ config MMU bool default y -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/h8300/Kconfig~tiny-make-id16-support-optional arch/h8300/Kconfig --- devel/arch/h8300/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/h8300/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -21,10 +21,6 @@ config FPU bool default n -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/i386/Kconfig~tiny-make-id16-support-optional arch/i386/Kconfig --- devel/arch/i386/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/i386/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -29,10 +29,6 @@ config MMU config SBUS bool -config UID16 - bool - default y - config GENERIC_ISA_DMA bool default y diff -puN arch/m68k/Kconfig~tiny-make-id16-support-optional arch/m68k/Kconfig --- devel/arch/m68k/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/m68k/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -10,10 +10,6 @@ config MMU bool default y -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/m68knommu/Kconfig~tiny-make-id16-support-optional arch/m68knommu/Kconfig --- devel/arch/m68knommu/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/m68knommu/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -17,10 +17,6 @@ config FPU bool default n -config UID16 - bool - default y - config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/parisc/Kconfig~tiny-make-id16-support-optional arch/parisc/Kconfig --- devel/arch/parisc/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/parisc/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -19,9 +19,6 @@ config MMU config STACK_GROWSUP def_bool y -config UID16 - bool - config RWSEM_GENERIC_SPINLOCK def_bool y diff -L arch/ppc64/Kconfig -puN /dev/null /dev/null diff -puN arch/ppc/Kconfig~tiny-make-id16-support-optional arch/ppc/Kconfig --- devel/arch/ppc/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/ppc/Kconfig 2006-01-03 17:11:32.000000000 -0800 @@ -8,9 +8,6 @@ config MMU bool default y -config UID16 - bool - config GENERIC_HARDIRQS bool default y diff -puN arch/s390/Kconfig~tiny-make-id16-support-optional arch/s390/Kconfig diff -puN arch/sh/Kconfig~tiny-make-id16-support-optional arch/sh/Kconfig --- devel/arch/sh/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/sh/Kconfig 2006-01-03 17:11:34.000000000 -0800 @@ -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 -puN arch/sparc64/Kconfig~tiny-make-id16-support-optional arch/sparc64/Kconfig --- devel/arch/sparc64/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/sparc64/Kconfig 2006-01-03 17:11:34.000000000 -0800 @@ -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 -puN arch/sparc/Kconfig~tiny-make-id16-support-optional arch/sparc/Kconfig --- devel/arch/sparc/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/sparc/Kconfig 2006-01-03 17:11:34.000000000 -0800 @@ -9,10 +9,6 @@ config MMU bool default y -config UID16 - bool - default y - config HIGHMEM bool default y diff -puN arch/um/Kconfig~tiny-make-id16-support-optional arch/um/Kconfig --- devel/arch/um/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/um/Kconfig 2006-01-03 17:11:34.000000000 -0800 @@ -22,10 +22,6 @@ config SBUS config PCI bool -config UID16 - bool - default y - config GENERIC_CALIBRATE_DELAY bool default y diff -puN arch/v850/Kconfig~tiny-make-id16-support-optional arch/v850/Kconfig --- devel/arch/v850/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/v850/Kconfig 2006-01-03 17:11:34.000000000 -0800 @@ -10,9 +10,6 @@ mainmenu "uClinux/v850 (w/o MMU) Kernel config MMU bool default n -config UID16 - bool - default n config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/x86_64/Kconfig~tiny-make-id16-support-optional arch/x86_64/Kconfig --- devel/arch/x86_64/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/x86_64/Kconfig 2006-01-03 17:11:34.000000000 -0800 @@ -569,11 +569,6 @@ config SYSVIPC_COMPAT depends on COMPAT && SYSVIPC default y -config UID16 - bool - depends on IA32_EMULATION - default y - endmenu source "net/Kconfig" diff -puN init/Kconfig~tiny-make-id16-support-optional init/Kconfig --- devel/init/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/init/Kconfig 2006-01-03 17:11:34.000000000 -0800 @@ -228,6 +228,14 @@ 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 + 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 -puN kernel/sys_ni.c~tiny-make-id16-support-optional kernel/sys_ni.c --- devel/kernel/sys_ni.c~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/kernel/sys_ni.c 2006-01-03 17:11:34.000000000 -0800 @@ -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); diff -puN arch/powerpc/Kconfig~tiny-make-id16-support-optional arch/powerpc/Kconfig --- devel/arch/powerpc/Kconfig~tiny-make-id16-support-optional 2006-01-03 17:11:32.000000000 -0800 +++ devel-akpm/arch/powerpc/Kconfig 2006-01-03 17:11:34.000000000 -0800 @@ -26,9 +26,6 @@ config MMU bool default y -config UID16 - bool - config GENERIC_HARDIRQS bool default y _