KVM: arm64: use common invariant sysreg definitions
authorMark Rutland <mark.rutland@arm.com>
Fri, 13 Jan 2017 18:36:26 +0000 (18:36 +0000)
committerMark Rutland <mark.rutland@arm.com>
Wed, 22 Mar 2017 18:38:18 +0000 (18:38 +0000)
Now that we have common definitions for the register encodings used by
KVM, make the KVM code uses thse for invariant sysreg definitions. This
makes said definitions a reasonable amount shorter, especially as many
comments are rendered redundant and can be removed.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: kvmarm@lists.cs.columbia.edu
arch/arm64/kvm/sys_regs.c

index 860707f..e637e1d 100644 (file)
@@ -1857,44 +1857,25 @@ FUNCTION_INVARIANT(aidr_el1)
 
 /* ->val is filled in by kvm_sys_reg_table_init() */
 static struct sys_reg_desc invariant_sys_regs[] = {
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0000), Op2(0b000),
-         NULL, get_midr_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0000), Op2(0b110),
-         NULL, get_revidr_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0001), Op2(0b000),
-         NULL, get_id_pfr0_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0001), Op2(0b001),
-         NULL, get_id_pfr1_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0001), Op2(0b010),
-         NULL, get_id_dfr0_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0001), Op2(0b011),
-         NULL, get_id_afr0_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0001), Op2(0b100),
-         NULL, get_id_mmfr0_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0001), Op2(0b101),
-         NULL, get_id_mmfr1_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0001), Op2(0b110),
-         NULL, get_id_mmfr2_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0001), Op2(0b111),
-         NULL, get_id_mmfr3_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0010), Op2(0b000),
-         NULL, get_id_isar0_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0010), Op2(0b001),
-         NULL, get_id_isar1_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0010), Op2(0b010),
-         NULL, get_id_isar2_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0010), Op2(0b011),
-         NULL, get_id_isar3_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0010), Op2(0b100),
-         NULL, get_id_isar4_el1 },
-       { Op0(0b11), Op1(0b000), CRn(0b0000), CRm(0b0010), Op2(0b101),
-         NULL, get_id_isar5_el1 },
-       { Op0(0b11), Op1(0b001), CRn(0b0000), CRm(0b0000), Op2(0b001),
-         NULL, get_clidr_el1 },
-       { Op0(0b11), Op1(0b001), CRn(0b0000), CRm(0b0000), Op2(0b111),
-         NULL, get_aidr_el1 },
-       { Op0(0b11), Op1(0b011), CRn(0b0000), CRm(0b0000), Op2(0b001),
-         NULL, get_ctr_el0 },
+       { SYS_DESC(SYS_MIDR_EL1), NULL, get_midr_el1 },
+       { SYS_DESC(SYS_REVIDR_EL1), NULL, get_revidr_el1 },
+       { SYS_DESC(SYS_ID_PFR0_EL1), NULL, get_id_pfr0_el1 },
+       { SYS_DESC(SYS_ID_PFR1_EL1), NULL, get_id_pfr1_el1 },
+       { SYS_DESC(SYS_ID_DFR0_EL1), NULL, get_id_dfr0_el1 },
+       { SYS_DESC(SYS_ID_AFR0_EL1), NULL, get_id_afr0_el1 },
+       { SYS_DESC(SYS_ID_MMFR0_EL1), NULL, get_id_mmfr0_el1 },
+       { SYS_DESC(SYS_ID_MMFR1_EL1), NULL, get_id_mmfr1_el1 },
+       { SYS_DESC(SYS_ID_MMFR2_EL1), NULL, get_id_mmfr2_el1 },
+       { SYS_DESC(SYS_ID_MMFR3_EL1), NULL, get_id_mmfr3_el1 },
+       { SYS_DESC(SYS_ID_ISAR0_EL1), NULL, get_id_isar0_el1 },
+       { SYS_DESC(SYS_ID_ISAR1_EL1), NULL, get_id_isar1_el1 },
+       { SYS_DESC(SYS_ID_ISAR2_EL1), NULL, get_id_isar2_el1 },
+       { SYS_DESC(SYS_ID_ISAR3_EL1), NULL, get_id_isar3_el1 },
+       { SYS_DESC(SYS_ID_ISAR4_EL1), NULL, get_id_isar4_el1 },
+       { SYS_DESC(SYS_ID_ISAR5_EL1), NULL, get_id_isar5_el1 },
+       { SYS_DESC(SYS_CLIDR_EL1), NULL, get_clidr_el1 },
+       { SYS_DESC(SYS_AIDR_EL1), NULL, get_aidr_el1 },
+       { SYS_DESC(SYS_CTR_EL0), NULL, get_ctr_el0 },
 };
 
 static int reg_from_user(u64 *val, const void __user *uaddr, u64 id)