diff --git a/arch/arm64/include/asm/mpam_sched.h b/arch/arm64/include/asm/mpam_sched.h index 02aea183d6ec40488f141b8f30a30fa69900368b..586b02b558449df8baf2bb19fc7f1f5df26d530c 100644 --- a/arch/arm64/include/asm/mpam_sched.h +++ b/arch/arm64/include/asm/mpam_sched.h @@ -71,10 +71,23 @@ static void __mpam_sched_in(void) state->cur_closid = partid; state->cur_rmid = pmg; + /* set in EL0 */ reg = read_sysreg_s(SYS_MPAM0_EL1); reg = reg & (~PARTID_MASK) & partid; reg = reg & (~PMG_MASK) & pmg; write_sysreg_s(reg, SYS_MPAM0_EL1); + + /* set in EL1 */ + reg = read_sysreg_s(SYS_MPAM1_EL1); + reg = reg & (~PARTID_MASK) & partid; + reg = reg & (~PMG_MASK) & pmg; + write_sysreg_s(reg, SYS_MPAM1_EL1); + + /* set in EL2 */ + reg = read_sysreg_s(SYS_MPAM2_EL2); + reg = reg & (~PARTID_MASK) & partid; + reg = reg & (~PMG_MASK) & pmg; + write_sysreg_s(reg, SYS_MPAM2_EL2); } }