Skip to contentSkip to conversation

PATCH: uid16 cleanup for 64 bit architectures

PATCH Tim Hockin 1 participant 1 message Jan 28, 2004

Subsystems (6)
lore
Share & tools
lore

Tim Hockin

author
#0 lore raw

The NGROUPS patch exposed me to a lot of duplicated code in some of the 64 bit architectures (stemming from CONFIG_UID16).

So a few months back, I worked up a solution. It seems that things have changed some. Architectures that used to not define CONFIG_UID16 (sparc64, s390, x86_64) now do. But they don't take advantage of the uid16.c code.

This (totally experimental, untestable by me) patch removes the offending code. In short:

* pry apart highuid.h and uid16.c
* build uid16.o iff CONFIG_UID16_SYSCALLS
* anywhere that defines CONFIG_UID16 adds CONFIG_UID16_SYSCALLS
* add CONFIG_UID16_SYSCALLS for any arch that wants to use uid16.c without converting everywhere else highuid.h is used
* strip out lots of code that was copied from uid16.c

This may all be totally worthless. That's up to the arch people to decide, I guess. I just said I would look into the mess. :)

Signature · 4 lines
Tim Hockin
Sun Microsystems, Linux Software Engineering
[email protected]
All opinions are my own, not Sun's
arch/arm/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/arm/Kconfig uid16-2.6/arch/arm/Kconfig
@@ -50,6 +50,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
arch/arm26/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/arm26/Kconfig uid16-2.6/arch/arm26/Kconfig
@@ -38,6 +38,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
arch/cris/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/cris/Kconfig uid16-2.6/arch/cris/Kconfig
@@ -13,6 +13,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
arch/h8300/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/h8300/Kconfig uid16-2.6/arch/h8300/Kconfig
@@ -25,6 +25,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
arch/i386/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/i386/Kconfig uid16-2.6/arch/i386/Kconfig
@@ -25,6 +25,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config GENERIC_ISA_DMA
 	bool
 	default y
arch/ia64/ia32/ia32_entry.S +2 -2
diff -ruN ngroups-2.6/arch/ia64/ia32/ia32_entry.S uid16-2.6/arch/ia64/ia32/ia32_entry.S
@@ -288,8 +288,8 @@
 	data8 compat_sys_getrusage
 	data8 sys32_gettimeofday
 	data8 sys32_settimeofday
-	data8 sys32_getgroups16	  /* 80 */
-	data8 sys32_setgroups16
+	data8 sys_getgroups16	  /* 80 */
+	data8 sys_setgroups16
 	data8 sys32_old_select
 	data8 sys_symlink
 	data8 sys_ni_syscall
arch/ia64/ia32/sys_ia32.c +0 -81

87 lines not on this page · raw message

arch/ia64/Kconfig +5 -0
diff -ruN ngroups-2.6/arch/ia64/Kconfig uid16-2.6/arch/ia64/Kconfig
@@ -385,6 +385,11 @@
 	depends on IA32_SUPPORT
 	default y
 
+config UID16_SYSCALLS
+	bool
+	depends on IA32_SUPPORT
+	default y
+
 config PERFMON
 	bool "Performance monitor support"
 	help
arch/m68k/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/m68k/Kconfig uid16-2.6/arch/m68k/Kconfig
@@ -14,6 +14,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
arch/m68knommu/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/m68knommu/Kconfig uid16-2.6/arch/m68knommu/Kconfig
@@ -17,6 +17,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
arch/s390/Kconfig +5 -0
diff -ruN ngroups-2.6/arch/s390/Kconfig uid16-2.6/arch/s390/Kconfig
@@ -28,6 +28,11 @@
 	default y
 	depends on ARCH_S390X = 'n'
 
+config UID16_SYSCALLS
+	bool
+	default y
+	depends on ARCH_S390X = 'n'
+
 source "init/Kconfig"
 
 menu "Base setup"
arch/s390/kernel/compat_linux.c +0 -204

221 lines not on this page · raw message

arch/s390/kernel/compat_wrapper.S +15 -15
diff -ruN ngroups-2.6/arch/s390/kernel/compat_wrapper.S uid16-2.6/arch/s390/kernel/compat_wrapper.S
@@ -84,7 +84,7 @@
 	llgtr	%r2,%r2			# const char *
 	llgfr	%r3,%r3			# __kernel_old_uid_emu31_t 
 	llgfr	%r4,%r4			# __kernel_old_uid_emu31_t 
-	jg	sys32_lchown16		# branch to system call
+	jg	sys_lchown16		# branch to system call
 
 	.globl  sys32_lseek_wrapper 
 sys32_lseek_wrapper:
@@ -112,7 +112,7 @@
 	.globl  sys32_setuid16_wrapper 
 sys32_setuid16_wrapper:
 	llgfr	%r2,%r2			# __kernel_old_uid_emu31_t 
-	jg	sys32_setuid16		# branch to system call
+	jg	sys_setuid16		# branch to system call
 
 #sys32_getuid16_wrapper			# void 
 
@@ -196,7 +196,7 @@
 	.globl  sys32_setgid16_wrapper 
 sys32_setgid16_wrapper:
 	llgfr	%r2,%r2			# __kernel_old_gid_emu31_t 
-	jg	sys32_setgid16		# branch to system call
+	jg	sys_setgid16		# branch to system call
 
 #sys32_getgid16_wrapper			# void 
 
@@ -279,13 +279,13 @@
 sys32_setreuid16_wrapper:
 	llgfr	%r2,%r2			# __kernel_old_uid_emu31_t 
 	llgfr	%r3,%r3			# __kernel_old_uid_emu31_t 
-	jg	sys32_setreuid16	# branch to system call
+	jg	sys_setreuid16		# branch to system call
 
 	.globl  sys32_setregid16_wrapper 
 sys32_setregid16_wrapper:
 	llgfr	%r2,%r2			# __kernel_old_gid_emu31_t 
 	llgfr	%r3,%r3			# __kernel_old_gid_emu31_t 
-	jg	sys32_setregid16	# branch to system call
+	jg	sys_setregid16		# branch to system call
 
 #sys32_sigsuspend_wrapper		# done in sigsuspend_glue 
 
@@ -345,13 +345,13 @@
 sys32_getgroups16_wrapper:
 	lgfr	%r2,%r2			# int
 	llgtr	%r3,%r3			# __kernel_old_gid_emu31_t *
-	jg	sys32_getgroups16	# branch to system call
+	jg	sys_getgroups16		# branch to system call
 
 	.globl  sys32_setgroups16_wrapper 
 sys32_setgroups16_wrapper:
 	lgfr	%r2,%r2			# int
 	llgtr	%r3,%r3			# __kernel_old_gid_emu31_t *
-	jg	sys32_setgroups16	# branch to system call
+	jg	sys_setgroups16		# branch to system call
 
 	.globl  sys32_symlink_wrapper 
 sys32_symlink_wrapper:
@@ -426,7 +426,7 @@
 	llgfr	%r2,%r2			# unsigned int
 	llgtr	%r3,%r3			# __kernel_old_uid_emu31_t *
 	llgtr	%r4,%r4			# __kernel_old_gid_emu31_t *
-	jg	sys32_fchown16		# branch to system call
+	jg	sys_fchown16		# branch to system call
 
 	.globl  sys32_getpriority_wrapper 
 sys32_getpriority_wrapper:
@@ -615,12 +615,12 @@
 	.globl  sys32_setfsuid16_wrapper 
 sys32_setfsuid16_wrapper:
 	llgfr	%r2,%r2			# __kernel_old_uid_emu31_t 
-	jg	sys32_setfsuid16	# branch to system call
+	jg	sys_setfsuid16		# branch to system call
 
 	.globl  sys32_setfsgid16_wrapper 
 sys32_setfsgid16_wrapper:
 	llgfr	%r2,%r2			# __kernel_old_gid_emu31_t 
-	jg	sys32_setfsgid16	# branch to system call
+	jg	sys_setfsgid16		# branch to system call
 
 	.globl  sys32_llseek_wrapper 
 sys32_llseek_wrapper:
@@ -767,14 +767,14 @@
 	llgfr	%r2,%r2			# __kernel_old_uid_emu31_t 
 	llgfr	%r3,%r3			# __kernel_old_uid_emu31_t 
 	llgfr	%r4,%r4			# __kernel_old_uid_emu31_t 
-	jg	sys32_setresuid16	# branch to system call
+	jg	sys_setresuid16		# branch to system call
 
 	.globl  sys32_getresuid16_wrapper 
 sys32_getresuid16_wrapper:
 	llgtr	%r2,%r2			# __kernel_old_uid_emu31_t *
 	llgtr	%r3,%r3			# __kernel_old_uid_emu31_t *
 	llgtr	%r4,%r4			# __kernel_old_uid_emu31_t *
-	jg	sys32_getresuid16	# branch to system call
+	jg	sys_getresuid16		# branch to system call
 
 	.globl  sys32_poll_wrapper 
 sys32_poll_wrapper:
@@ -795,14 +795,14 @@
 	llgfr	%r2,%r2			# __kernel_old_gid_emu31_t 
 	llgfr	%r3,%r3			# __kernel_old_gid_emu31_t 
 	llgfr	%r4,%r4			# __kernel_old_gid_emu31_t 
-	jg	sys32_setresgid16	# branch to system call
+	jg	sys_setresgid16		# branch to system call
 
 	.globl  sys32_getresgid16_wrapper 
 sys32_getresgid16_wrapper:
 	llgtr	%r2,%r2			# __kernel_old_gid_emu31_t *
 	llgtr	%r3,%r3			# __kernel_old_gid_emu31_t *
 	llgtr	%r4,%r4			# __kernel_old_gid_emu31_t *
-	jg	sys32_getresgid16	# branch to system call
+	jg	sys_getresgid16		# branch to system call
 
 	.globl  sys32_prctl_wrapper 
 sys32_prctl_wrapper:
@@ -876,7 +876,7 @@
 	llgtr	%r2,%r2			# const char *
 	llgfr	%r3,%r3			# __kernel_old_uid_emu31_t 
 	llgfr	%r4,%r4			# __kernel_old_gid_emu31_t 
-	jg	sys32_chown16		# branch to system call
+	jg	sys_chown16		# branch to system call
 
 	.globl  sys32_getcwd_wrapper 
 sys32_getcwd_wrapper:
arch/s390/kernel/syscalls.S +5 -5
diff -ruN ngroups-2.6/arch/s390/kernel/syscalls.S uid16-2.6/arch/s390/kernel/syscalls.S
@@ -32,7 +32,7 @@
 SYSCALL(sys_mount,sys_mount,sys32_mount_wrapper)
 SYSCALL(sys_oldumount,sys_oldumount,sys32_oldumount_wrapper)
 SYSCALL(sys_setuid16,sys_ni_syscall,sys32_setuid16_wrapper)	/* old setuid16 syscall*/
-SYSCALL(sys_getuid16,sys_ni_syscall,sys32_getuid16)		/* old getuid16 syscall*/
+SYSCALL(sys_getuid16,sys_ni_syscall,sys_getuid16)		/* old getuid16 syscall*/
 SYSCALL(sys_stime,sys_ni_syscall,sys32_stime_wrapper)		/* 25 old stime syscall */
 SYSCALL(sys_ptrace,sys_ptrace,sys32_ptrace_wrapper)
 SYSCALL(sys_alarm,sys_alarm,sys32_alarm_wrapper)
@@ -54,11 +54,11 @@
 SYSCALL(sys_times,sys_times,compat_sys_times_wrapper)
 NI_SYSCALL							/* old prof syscall */
 SYSCALL(sys_brk,sys_brk,sys32_brk_wrapper)			/* 45 */
-SYSCALL(sys_setgid16,sys_ni_syscall,sys32_setgid16)		/* old setgid16 syscall*/
-SYSCALL(sys_getgid16,sys_ni_syscall,sys32_getgid16)		/* old getgid16 syscall*/
+SYSCALL(sys_setgid16,sys_ni_syscall,sys_setgid16)		/* old setgid16 syscall*/
+SYSCALL(sys_getgid16,sys_ni_syscall,sys_getgid16)		/* old getgid16 syscall*/
 SYSCALL(sys_signal,sys_signal,sys32_signal_wrapper)
-SYSCALL(sys_geteuid16,sys_ni_syscall,sys32_geteuid16)		/* old geteuid16 syscall */
-SYSCALL(sys_getegid16,sys_ni_syscall,sys32_getegid16)		/* 50 old getegid16 syscall */
+SYSCALL(sys_geteuid16,sys_ni_syscall,sys_geteuid16)		/* old geteuid16 syscall */
+SYSCALL(sys_getegid16,sys_ni_syscall,sys_getegid16)		/* 50 old getegid16 syscall */
 SYSCALL(sys_acct,sys_acct,sys32_acct_wrapper)
 SYSCALL(sys_umount,sys_umount,sys32_umount_wrapper)
 NI_SYSCALL							/* old lock syscall */
arch/sh/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/sh/Kconfig uid16-2.6/arch/sh/Kconfig
@@ -18,6 +18,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
arch/sparc/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/sparc/Kconfig uid16-2.6/arch/sparc/Kconfig
@@ -13,6 +13,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config HIGHMEM
 	bool
 	default y
arch/sparc64/Kconfig +5 -0
diff -ruN ngroups-2.6/arch/sparc64/Kconfig uid16-2.6/arch/sparc64/Kconfig
@@ -381,6 +381,11 @@
 	depends on SPARC32_COMPAT
 	default y
 
+config UID16_SYSCALLS
+	bool
+	depends on SPARC32_COMPAT
+	default y
+
 config BINFMT_ELF32
 	tristate "Kernel support for 32-bit ELF binaries"
 	depends on SPARC32_COMPAT
arch/sparc64/kernel/entry.S +4 -4
diff -ruN ngroups-2.6/arch/sparc64/kernel/entry.S uid16-2.6/arch/sparc64/kernel/entry.S
@@ -1475,9 +1475,9 @@
 	/* SunOS getuid() returns uid in %o0 and euid in %o1 */
 	.globl	sunos_getuid
 sunos_getuid:
-	call	sys32_geteuid16
+	call	sys_geteuid16
 	 nop
-	call	sys32_getuid16
+	call	sys_getuid16
 	 stx	%o0, [%sp + PTREGS_OFF + PT_V9_I1]
 	b,pt	%xcc, ret_sys_call
 	 stx	%o0, [%sp + PTREGS_OFF + PT_V9_I0]
@@ -1485,9 +1485,9 @@
 	/* SunOS getgid() returns gid in %o0 and egid in %o1 */
 	.globl	sunos_getgid
 sunos_getgid:
-	call	sys32_getegid16
+	call	sys_getegid16
 	 nop
-	call	sys32_getgid16
+	call	sys_getgid16
 	 stx	%o0, [%sp + PTREGS_OFF + PT_V9_I1]
 	b,pt	%xcc, ret_sys_call
 	 stx	%o0, [%sp + PTREGS_OFF + PT_V9_I0]
arch/sparc64/kernel/sys_sparc32.c +0 -188

194 lines not on this page · raw message

arch/sparc64/kernel/systbls.S +16 -16
diff -ruN ngroups-2.6/arch/sparc64/kernel/systbls.S uid16-2.6/arch/sparc64/kernel/systbls.S
@@ -21,21 +21,21 @@
 sys_call_table32:
 /*0*/	.word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write
 /*5*/	.word sparc32_open, sys_close, compat_sys_wait4, sys_creat, sys_link
-/*10*/  .word sys_unlink, sunos_execv, sys_chdir, sys32_chown16, sys32_mknod
-/*15*/	.word sys32_chmod, sys32_lchown16, sparc_brk, sys_perfctr, sys32_lseek
-/*20*/	.word sys_getpid, sys_capget, sys_capset, sys32_setuid16, sys32_getuid16
+/*10*/  .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod
+/*15*/	.word sys32_chmod, sys_lchown16, sparc_brk, sys_perfctr, sys32_lseek
+/*20*/	.word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16
 /*25*/	.word sys_time, sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause
 /*30*/	.word compat_sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice
 	.word sys_chown, sys_sync, sys_kill, compat_sys_newstat, sys32_sendfile
 /*40*/	.word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid
-	.word sys_umount, sys32_setgid16, sys32_getgid16, sys_signal, sys32_geteuid16
-/*50*/	.word sys32_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
+	.word sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16
+/*50*/	.word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
 	.word sys_reboot, sys32_mmap2, sys_symlink, sys_readlink, sys32_execve
 /*60*/	.word sys_umask, sys_chroot, compat_sys_newfstat, sys_fstat64, sys_getpagesize
 	.word sys_msync, sys_vfork, sys32_pread64, sys32_pwrite64, sys_geteuid
 /*70*/	.word sys_getegid, sys32_mmap, sys_setreuid, sys_munmap, sys_mprotect
-	.word sys_madvise, sys_vhangup, sys32_truncate64, sys_mincore, sys32_getgroups16
-/*80*/	.word sys32_setgroups16, sys_getpgrp, sys_setgroups, compat_sys_setitimer, sys32_ftruncate64
+	.word sys_madvise, sys_vhangup, sys32_truncate64, sys_mincore, sys_getgroups16
+/*80*/	.word sys_setgroups16, sys_getpgrp, sys_setgroups, compat_sys_setitimer, sys32_ftruncate64
 	.word sys_swapon, compat_sys_getitimer, sys_setuid, sys_sethostname, sys_setgid
 /*90*/	.word sys_dup2, sys_setfsuid, compat_sys_fcntl, sys32_select, sys_setfsgid
 	.word sys_fsync, sys_setpriority32, sys_nis_syscall, sys_nis_syscall, sys_nis_syscall
@@ -43,8 +43,8 @@
 	.word sys32_rt_sigtimedwait, sys32_rt_sigqueueinfo, sys32_rt_sigsuspend, sys_setresuid, sys_getresuid
 /*110*/	.word sys_setresgid, sys_getresgid, sys_setregid, sys_nis_syscall, sys_nis_syscall
 	.word sys_getgroups, sys32_gettimeofday, compat_sys_getrusage, sys_nis_syscall, sys_getcwd
-/*120*/	.word sys32_readv, sys32_writev, sys32_settimeofday, sys32_fchown16, sys_fchmod
-	.word sys_nis_syscall, sys32_setreuid16, sys32_setregid16, sys_rename, sys_truncate
+/*120*/	.word sys32_readv, sys32_writev, sys32_settimeofday, sys_fchown16, sys_fchmod
+	.word sys_nis_syscall, sys_setreuid16, sys_setregid16, sys_rename, sys_truncate
 /*130*/	.word sys_ftruncate, sys_flock, sys_lstat64, sys_nis_syscall, sys_nis_syscall
 	.word sys_nis_syscall, sys_mkdir, sys_rmdir, sys32_utimes, sys_stat64
 /*140*/	.word sys32_sendfile64, sys_nis_syscall, compat_sys_futex, sys_gettid, compat_sys_getrlimit
@@ -64,7 +64,7 @@
 /*210*/	.word sys32_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys32_sysinfo
 	.word sys32_ipc, sys32_sigreturn, sys_clone, sys_nis_syscall, sys32_adjtimex
 /*220*/	.word compat_sys_sigprocmask, sys_ni_syscall, sys32_delete_module, sys_ni_syscall, sys_getpgid
-	.word sys32_bdflush, sys32_sysfs, sys_nis_syscall, sys32_setfsuid16, sys32_setfsgid16
+	.word sys32_bdflush, sys32_sysfs, sys_nis_syscall, sys_setfsuid16, sys_setfsgid16
 /*230*/	.word sys32_select, sys_time, sys_nis_syscall, sys_stime, compat_statfs64
 	.word compat_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
 /*240*/	.word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
@@ -149,7 +149,7 @@
 	.word sys_close, sunos_wait4, sys_creat
 	.word sys_link, sys_unlink, sunos_execv
 	.word sys_chdir, sunos_nosys, sys32_mknod
-	.word sys32_chmod, sys32_lchown16, sunos_brk
+	.word sys32_chmod, sys_lchown16, sunos_brk
 	.word sunos_nosys, sys32_lseek, sunos_getpid
 	.word sunos_nosys, sunos_nosys, sunos_nosys
 	.word sunos_getuid, sunos_nosys, sys_ptrace
@@ -170,8 +170,8 @@
 	.word sunos_nosys, sunos_sbrk, sunos_sstk
 	.word sunos_mmap, sunos_vadvise, sys_munmap
 	.word sys_mprotect, sys_madvise, sys_vhangup
-	.word sunos_nosys, sys_mincore, sys32_getgroups16
-	.word sys32_setgroups16, sys_getpgrp, sunos_setpgrp
+	.word sunos_nosys, sys_mincore, sys_getgroups16
+	.word sys_setgroups16, sys_getpgrp, sunos_setpgrp
 	.word compat_sys_setitimer, sunos_nosys, sys_swapon
 	.word compat_sys_getitimer, sys_gethostname, sys_sethostname
 	.word sunos_getdtablesize, sys_dup2, sunos_nop
@@ -185,9 +185,9 @@
 	.word sys32_sigstack, compat_sys_recvmsg, compat_sys_sendmsg
 	.word sunos_nosys, sys32_gettimeofday, compat_sys_getrusage
 	.word sunos_getsockopt, sunos_nosys, sunos_readv
-	.word sunos_writev, sys32_settimeofday, sys32_fchown16
-	.word sys_fchmod, sys32_recvfrom, sys32_setreuid16
-	.word sys32_setregid16, sys_rename, sys_truncate
+	.word sunos_writev, sys32_settimeofday, sys_fchown16
+	.word sys_fchmod, sys32_recvfrom, sys_setreuid16
+	.word sys_setregid16, sys_rename, sys_truncate
 	.word sys_ftruncate, sys_flock, sunos_nosys
 	.word sys32_sendto, sys_shutdown, sys_socketpair
 	.word sys_mkdir, sys_rmdir, sys32_utimes
arch/um/Kconfig +4 -0
diff -ruN ngroups-2.6/arch/um/Kconfig uid16-2.6/arch/um/Kconfig
@@ -22,6 +22,10 @@
 	bool
 	default y
 
+config UID16_SYSCALLS
+	bool
+	default y
+
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
arch/x86_64/Kconfig +5 -0
diff -ruN ngroups-2.6/arch/x86_64/Kconfig uid16-2.6/arch/x86_64/Kconfig
@@ -368,6 +368,11 @@
 	depends on IA32_EMULATION
 	default y
 
+config UID16_SYSCALLS
+	bool
+	depends on IA32_EMULATION
+	default y
+
 endmenu
 
 source drivers/Kconfig
kernel/Makefile +1 -1
diff -ruN ngroups-2.6/kernel/Makefile uid16-2.6/kernel/Makefile
@@ -11,7 +11,7 @@
 obj-$(CONFIG_FUTEX) += futex.o
 obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
 obj-$(CONFIG_SMP) += cpu.o
-obj-$(CONFIG_UID16) += uid16.o
+obj-$(CONFIG_UID16_SYSCALLS) += uid16.o
 obj-$(CONFIG_MODULES) += module.o
 obj-$(CONFIG_KALLSYMS) += kallsyms.o
 obj-$(CONFIG_PM) += power/
kernel/uid16.c +29 -21

153 lines not on this page · raw message