--- zzzz-none-000/linux-4.19.183/arch/arm/kvm/hyp/cp15-sr.c 2021-03-24 10:07:39.000000000 +0000 +++ bcm63-7530ax-756/linux-4.19.183/arch/arm/kvm/hyp/cp15-sr.c 2023-06-28 08:54:18.000000000 +0000 @@ -31,8 +31,13 @@ ctxt->cp15[c0_CSSELR] = read_sysreg(CSSELR); ctxt->cp15[c1_SCTLR] = read_sysreg(SCTLR); ctxt->cp15[c1_CPACR] = read_sysreg(CPACR); +#if defined(CONFIG_BCM_KF_ARM_KASAN) + *cp15_64(ctxt, c2_TTBR0) = read_sysreg(TTBR0_64); + *cp15_64(ctxt, c2_TTBR1) = read_sysreg(TTBR1_64); +#else *cp15_64(ctxt, c2_TTBR0) = read_sysreg(TTBR0); *cp15_64(ctxt, c2_TTBR1) = read_sysreg(TTBR1); +#endif ctxt->cp15[c2_TTBCR] = read_sysreg(TTBCR); ctxt->cp15[c3_DACR] = read_sysreg(DACR); ctxt->cp15[c5_DFSR] = read_sysreg(DFSR); @@ -41,7 +46,11 @@ ctxt->cp15[c5_AIFSR] = read_sysreg(AIFSR); ctxt->cp15[c6_DFAR] = read_sysreg(DFAR); ctxt->cp15[c6_IFAR] = read_sysreg(IFAR); +#if defined(CONFIG_BCM_KF_ARM_KASAN) + *cp15_64(ctxt, c7_PAR) = read_sysreg(PAR_64); +#else *cp15_64(ctxt, c7_PAR) = read_sysreg(PAR); +#endif ctxt->cp15[c10_PRRR] = read_sysreg(PRRR); ctxt->cp15[c10_NMRR] = read_sysreg(NMRR); ctxt->cp15[c10_AMAIR0] = read_sysreg(AMAIR0); @@ -60,8 +69,13 @@ write_sysreg(ctxt->cp15[c0_CSSELR], CSSELR); write_sysreg(ctxt->cp15[c1_SCTLR], SCTLR); write_sysreg(ctxt->cp15[c1_CPACR], CPACR); +#if defined(CONFIG_BCM_KF_ARM_KASAN) + write_sysreg(*cp15_64(ctxt, c2_TTBR0), TTBR0_64); + write_sysreg(*cp15_64(ctxt, c2_TTBR1), TTBR1_64); +#else write_sysreg(*cp15_64(ctxt, c2_TTBR0), TTBR0); write_sysreg(*cp15_64(ctxt, c2_TTBR1), TTBR1); +#endif write_sysreg(ctxt->cp15[c2_TTBCR], TTBCR); write_sysreg(ctxt->cp15[c3_DACR], DACR); write_sysreg(ctxt->cp15[c5_DFSR], DFSR); @@ -70,7 +84,11 @@ write_sysreg(ctxt->cp15[c5_AIFSR], AIFSR); write_sysreg(ctxt->cp15[c6_DFAR], DFAR); write_sysreg(ctxt->cp15[c6_IFAR], IFAR); +#if defined(CONFIG_BCM_KF_ARM_KASAN) + write_sysreg(*cp15_64(ctxt, c7_PAR), PAR_64); +#else write_sysreg(*cp15_64(ctxt, c7_PAR), PAR); +#endif write_sysreg(ctxt->cp15[c10_PRRR], PRRR); write_sysreg(ctxt->cp15[c10_NMRR], NMRR); write_sysreg(ctxt->cp15[c10_AMAIR0], AMAIR0);