Commit bf09ee91 authored by Ben Horgan's avatar Ben Horgan Committed by Catalin Marinas
Browse files

KVM: arm64: selftests: Remove ARM64_FEATURE_FIELD_BITS and its last user



ARM64_FEATURE_FIELD_BITS is set to 4 but not all ID register fields are 4
bits. See for instance ID_AA64SMFR0_EL1. The last user of this define,
ARM64_FEATURE_FIELD_BITS, is the set_id_regs selftest. Its logic assumes
the fields aren't a single bits; assert that's the case and stop using the
define. As there are no more users, ARM64_FEATURE_FIELD_BITS is removed
from the arm64 tools sysreg.h header. A separate commit removes this from
the kernel version of the header.

Signed-off-by: default avatarBen Horgan <ben.horgan@arm.com>
Acked-by: default avatarMarc Zyngier <maz@kernel.org>
Acked-by: default avatarOliver Upton <oupton@kernel.org>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent a04fbfb8
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -1078,8 +1078,6 @@
#define GCS_CAP(x)	((((unsigned long)x) & GCS_CAP_ADDR_MASK) | \
					       GCS_CAP_VALID_TOKEN)

#define ARM64_FEATURE_FIELD_BITS	4

#ifdef __ASSEMBLY__

	.macro	mrs_s, rt, sreg
+6 −2
Original line number Diff line number Diff line
@@ -265,7 +265,9 @@ static void guest_code(void)
/* Return a safe value to a given ftr_bits an ftr value */
uint64_t get_safe_value(const struct reg_ftr_bits *ftr_bits, uint64_t ftr)
{
	uint64_t ftr_max = GENMASK_ULL(ARM64_FEATURE_FIELD_BITS - 1, 0);
	uint64_t ftr_max = ftr_bits->mask >> ftr_bits->shift;

	TEST_ASSERT(ftr_max > 1, "This test doesn't support single bit features");

	if (ftr_bits->sign == FTR_UNSIGNED) {
		switch (ftr_bits->type) {
@@ -317,7 +319,9 @@ uint64_t get_safe_value(const struct reg_ftr_bits *ftr_bits, uint64_t ftr)
/* Return an invalid value to a given ftr_bits an ftr value */
uint64_t get_invalid_value(const struct reg_ftr_bits *ftr_bits, uint64_t ftr)
{
	uint64_t ftr_max = GENMASK_ULL(ARM64_FEATURE_FIELD_BITS - 1, 0);
	uint64_t ftr_max = ftr_bits->mask >> ftr_bits->shift;

	TEST_ASSERT(ftr_max > 1, "This test doesn't support single bit features");

	if (ftr_bits->sign == FTR_UNSIGNED) {
		switch (ftr_bits->type) {