[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/38] target/ppc: Prevent supervisor from modifying MSR[ME]
From: |
Nicholas Piggin |
Subject: |
[PULL 02/38] target/ppc: Prevent supervisor from modifying MSR[ME] |
Date: |
Wed, 13 Mar 2024 02:58:13 +1000 |
Prevent guest state modifying the MSR[ME] bit. Per ISA:
An attempt to modify MSR[ME] in privileged but non-hypervisor state
is ignored (i.e., the bit is not changed).
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
target/ppc/helper_regs.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/target/ppc/helper_regs.c b/target/ppc/helper_regs.c
index 410b39c231..25258986e3 100644
--- a/target/ppc/helper_regs.c
+++ b/target/ppc/helper_regs.c
@@ -264,6 +264,11 @@ int hreg_store_msr(CPUPPCState *env, target_ulong value,
int alter_hv)
value &= ~MSR_HVB;
value |= env->msr & MSR_HVB;
}
+ /* Attempt to modify MSR[ME] in guest state is ignored */
+ if (is_book3s_arch2x(env) && !(env->msr & MSR_HVB)) {
+ value &= ~(1 << MSR_ME);
+ value |= env->msr & (1 << MSR_ME);
+ }
if ((value ^ env->msr) & (R_MSR_IR_MASK | R_MSR_DR_MASK)) {
cpu_interrupt_exittb(cs);
}
--
2.42.0
- [PULL 00/38] ppc-for-9.0-2 queue, Nicholas Piggin, 2024/03/12
- [PULL 01/38] target/ppc: Fix GDB SPR regnum indexing, Nicholas Piggin, 2024/03/12
- [PULL 03/38] spapr: set MSR[ME] and MSR[FP] on client entry, Nicholas Piggin, 2024/03/12
- [PULL 02/38] target/ppc: Prevent supervisor from modifying MSR[ME],
Nicholas Piggin <=
- [PULL 04/38] ppc: Drop support for POWER9 and POWER10 DD1 chips, Nicholas Piggin, 2024/03/12
- [PULL 05/38] target/ppc: POWER10 does not have transactional memory, Nicholas Piggin, 2024/03/12
- [PULL 06/38] ppc/spapr|pnv: Remove SAO from pa-features, Nicholas Piggin, 2024/03/12
- [PULL 07/38] ppc/spapr: Remove copy-paste from pa-features, Nicholas Piggin, 2024/03/12
- [PULL 08/38] ppc/spapr: Adjust ibm,pa-features for POWER9, Nicholas Piggin, 2024/03/12
- [PULL 10/38] ppc/pnv: Permit ibm,pa-features set per machine variant, Nicholas Piggin, 2024/03/12
- [PULL 11/38] ppc/pnv: Set POWER9, POWER10 ibm,pa-features bits, Nicholas Piggin, 2024/03/12
- [PULL 09/38] ppc/spapr: Add pa-features for POWER10 machines, Nicholas Piggin, 2024/03/12
- [PULL 13/38] docs: Deprecate the pseries-2.12 machines, Nicholas Piggin, 2024/03/12
- [PULL 14/38] docs/system/ppc: Document running Linux on AmigaNG machines, Nicholas Piggin, 2024/03/12