diff options
author | Marc Zyngier <maz@kernel.org> | 2024-04-19 13:29:21 +0300 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2024-04-20 14:42:47 +0300 |
commit | 1b06b99f25e0c957feb488ff8117a37f592c3866 (patch) | |
tree | 10454855074c161d8ef6af1d46280c25091216ac /tools/perf/scripts/python/export-to-sqlite.py | |
parent | fec50db7033ea478773b159e0e2efb135270e3b7 (diff) | |
download | linux-1b06b99f25e0c957feb488ff8117a37f592c3866.tar.xz |
KVM: arm64: Harden __ctxt_sys_reg() against out-of-range values
The unsuspecting kernel tinkerer can be easily confused into
writing something that looks like this:
ikey.lo = __vcpu_sys_reg(vcpu, SYS_APIAKEYLO_EL1);
which seems vaguely sensible, until you realise that the second
parameter is the encoding of a sysreg, and not the index into
the vcpu sysreg file... Debugging what happens in this case is
an interesting exercise in head<->wall interactions.
As they often say: "Any resemblance to actual persons, living
or dead, or actual events is purely coincidental".
In order to save people's time, add some compile-time hardening
that will at least weed out the "stupidly out of range" values.
This will *not* catch anything that isn't a compile-time constant.
Reviewed-by: Joey Gouly <joey.gouly@arm.com>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20240419102935.1935571-2-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-sqlite.py')
0 files changed, 0 insertions, 0 deletions