[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 09/13] target/ppc: Prevent supervisor from modifying MSR[ME]
From: |
Nicholas Piggin |
Subject: |
[PATCH 09/13] target/ppc: Prevent supervisor from modifying MSR[ME] |
Date: |
Tue, 12 Mar 2024 04:51:51 +1000 |
Prevent guest state modifying the MSR[ME] bit. Per ISA:
An attempt to modify MSRME in privileged but non-hypervisor state is
ignored (i.e., the bit is not changed).
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
- Re: [PATCH 06/13] ppc/spapr: Add pa-features for POWER10 machines, (continued)
- [PATCH 09/13] target/ppc: Prevent supervisor from modifying MSR[ME],
Nicholas Piggin <=
- [PATCH 10/13] spapr: set MSR[ME] and MSR[FP] on client entry, Nicholas Piggin, 2024/03/11
- [PATCH 11/13] target/ppc: Make checkstop actually stop the system, Nicholas Piggin, 2024/03/11
- [PATCH 12/13] target/ppc: improve checkstop logging, Nicholas Piggin, 2024/03/11
- [PATCH 13/13] target/ppc: Implement attn instruction on BookS 64-bit processors, Nicholas Piggin, 2024/03/11
- Re: [PATCH 00/13] misc ppc patches, Philippe Mathieu-Daudé, 2024/03/11