linux/tools/testing/selftests
Linus Torvalds f122a08b19 capability: just use a 'u64' instead of a 'u32[2]' array
Back in 2008 we extended the capability bits from 32 to 64, and we did
it by extending the single 32-bit capability word from one word to an
array of two words.  It was then obfuscated by hiding the "2" behind two
macro expansions, with the reasoning being that maybe it gets extended
further some day.

That reasoning may have been valid at the time, but the last thing we
want to do is to extend the capability set any more.  And the array of
values not only causes source code oddities (with loops to deal with
it), but also results in worse code generation.  It's a lose-lose
situation.

So just change the 'u32[2]' into a 'u64' and be done with it.

We still have to deal with the fact that the user space interface is
designed around an array of these 32-bit values, but that was the case
before too, since the array layouts were different (ie user space
doesn't use an array of 32-bit values for individual capability masks,
but an array of 32-bit slices of multiple masks).

So that marshalling of data is actually simplified too, even if it does
remain somewhat obscure and odd.

This was all triggered by my reaction to the new "cap_isidentical()"
introduced recently.  By just using a saner data structure, it went from

	unsigned __capi;
	CAP_FOR_EACH_U32(__capi) {
		if (a.cap[__capi] != b.cap[__capi])
			return false;
	}
	return true;

to just being

	return a.val == b.val;

instead.  Which is rather more obvious both to humans and to compilers.

Cc: Mateusz Guzik <mjguzik@gmail.com>
Cc: Casey Schaufler <casey@schaufler-ca.com>
Cc: Serge Hallyn <serge@hallyn.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Paul Moore <paul@paul-moore.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2023-03-01 10:01:22 -08:00
..
alsa kselftest/alsa: Run PCM tests for multiple cards in parallel 2023-02-04 09:36:35 +01:00
amd-pstate selftests: amd-pstate: Don't delete source files via Makefile 2023-01-25 10:01:35 -07:00
arm64 linux-kselftest-next-6.3-rc1 2023-02-23 09:37:29 -08:00
bpf capability: just use a 'u64' instead of a 'u32[2]' array 2023-03-01 10:01:22 -08:00
breakpoints
capabilities
cgroup cgroup/cpuset: Fix wrong check in update_parent_subparts_cpumask() 2023-01-31 12:14:02 -10:00
clone3 selftests: clone3: Fix incorrect kernel headers search path 2023-01-30 15:01:52 -07:00
core selftests: core: Fix incorrect kernel headers search path 2023-01-30 15:04:52 -07:00
cpu-hotplug
cpufreq
damon selftests/damon/debugfs_rm_non_contexts: hide expected write error messages 2023-02-02 22:32:52 -08:00
dma
dmabuf-heaps selftests: dmabuf-heaps: Fix incorrect kernel headers search path 2023-02-13 09:09:44 -07:00
drivers linux-kselftest-next-6.3-rc1 2023-02-23 09:37:29 -08:00
efivarfs
exec
filesystems linux-kselftest-next-6.3-rc1 2023-02-23 09:37:29 -08:00
firmware
fpu
ftrace LoongArch changes for v6.3 2023-03-01 09:27:00 -08:00
futex selftests: futex: Fix incorrect kernel headers search path 2023-02-13 09:09:44 -07:00
gpio selftests: gpio: Fix incorrect kernel headers search path 2023-02-13 09:09:44 -07:00
hid selftests: hid: enforce new attach API 2023-01-18 22:08:38 +01:00
ia64
intel_pstate
iommu iommufd for 6.3 2023-02-24 14:34:12 -08:00
ipc selftests: ipc: Fix incorrect kernel headers search path 2023-02-13 09:09:44 -07:00
ir
kcmp selftests: kcmp: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
kexec
kmod
kselftest
kvm ARM: 2023-02-25 11:30:21 -08:00
landlock selftests/landlock: Test ptrace as much as possible with Yama 2023-01-27 18:53:55 +01:00
lib
livepatch
lkdtm
locking
media_tests selftests: media_tests: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
membarrier linux-kselftest-next-6.3-rc1 2023-02-23 09:37:29 -08:00
memfd - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
memory-hotplug
mincore
mm - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
mount
mount_setattr selftests/mount_setattr: fix to make run_tests failure 2023-02-13 16:37:29 -07:00
move_mount_set_group selftests: move_mount_set_group: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
mqueue
nci
net selftests: fib_tests: Add test cases for IPv4/IPv6 in route notify 2023-02-23 10:54:13 +01:00
netfilter netfilter: ip6t_rpfilter: Fix regression with VRF interfaces 2023-02-22 00:22:20 +01:00
nolibc selftests/nolibc: Add a "run-user" target to test the program in user land 2023-01-24 15:35:45 -08:00
nsfs
ntb
openat2
perf_events selftests: perf_events: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
pid_namespace selftests: pid_namespace: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
pidfd selftests: pidfd: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
powerpc selftests/powerpc: Fix incorrect kernel headers search path 2023-02-15 22:41:00 +11:00
prctl selftests: Fix spelling mistake "allright" -> "all right" 2023-02-13 09:09:46 -07:00
proc proc: fix PIE proc-empty-vm, proc-pid-vm tests 2023-01-11 16:14:22 -08:00
pstore
ptp selftests/ptp: Remove clean target from Makefile 2023-02-13 10:05:49 -07:00
ptrace selftests: ptrace: Use installed kernel headers search path 2023-02-13 09:09:46 -07:00
rcutorture nolibc updates for v6.3 2023-02-23 09:33:01 -08:00
resctrl
rlimits
rseq linux-kselftest-next-6.3-rc1 2023-02-23 09:37:29 -08:00
rtc
safesetid
sched selftests/sched: fix warn_unused_result build warns 2023-02-13 16:35:54 -07:00
seccomp LoongArch changes for v6.3 2023-03-01 09:27:00 -08:00
sgx
sigaltstack
size
sparc64
splice
static_keys
sync selftests: sync: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
syscall_user_dispatch
sysctl
tc-testing net/sched: Retire rsvp classifier 2023-02-16 09:27:07 +01:00
tdx selftests: tdx: Use installed kernel headers search path 2023-02-13 09:09:46 -07:00
timens
timers
tmpfs
tpm2 selftests: tpm2: remove redundant ord() 2023-02-13 09:09:46 -07:00
uevent
user
user_events selftests/user_events: add a note about user_events.h dependency 2023-02-14 13:18:55 -07:00
vDSO
watchdog
wireguard
x86 linux-kselftest-next-6.3-rc1 2023-02-23 09:37:29 -08:00
zram
.gitignore
Makefile - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
gen_kselftest_tar.sh
kselftest.h
kselftest_deps.sh selftests/vm: rename selftests/vm to selftests/mm 2023-01-18 17:12:56 -08:00
kselftest_harness.h testing: kselftest_harness: add filtering and enumerating tests 2023-01-26 16:00:41 -07:00
kselftest_install.sh
kselftest_module.h
lib.mk kselftest: Fix error message for unconfigured LLVM builds 2023-01-12 13:38:04 -07:00
run_kselftest.sh