[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-stable] [PATCH 52/97] target/arm: Correct condition for v8M callee
From: |
Michael Roth |
Subject: |
[Qemu-stable] [PATCH 52/97] target/arm: Correct condition for v8M callee stack push |
Date: |
Mon, 1 Apr 2019 15:59:26 -0500 |
From: Peter Maydell <address@hidden>
In v7m_exception_taken() we were incorrectly using a
"LR bit EXCRET.ES is 1" check when it should be 0
(compare the pseudocode ExceptionTaken() function).
This meant we didn't stack the callee-saved registers
when tailchaining from a NonSecure to a Secure exception.
Cc: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden
(cherry picked from commit 7b73a1ca05b33d42278ce29cea4652e22d408165)
Signed-off-by: Michael Roth <address@hidden>
---
target/arm/helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/arm/helper.c b/target/arm/helper.c
index 7ee614c04f..cae2b2649d 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -6858,7 +6858,7 @@ static void v7m_exception_taken(ARMCPU *cpu, uint32_t lr,
bool dotailchain,
* not already saved.
*/
if (lr & R_V7M_EXCRET_DCRS_MASK &&
- !(dotailchain && (lr & R_V7M_EXCRET_ES_MASK))) {
+ !(dotailchain && !(lr & R_V7M_EXCRET_ES_MASK))) {
push_failed = v7m_push_callee_stack(cpu, lr, dotailchain,
ignore_stackfaults);
}
--
2.17.1
- [Qemu-stable] [PATCH 03/97] target/arm: Reorganize SVE WHILE, (continued)
- [Qemu-stable] [PATCH 03/97] target/arm: Reorganize SVE WHILE, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 49/97] virt: Suppress external aborts on virt-2.10 and earlier, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 63/97] qemu-img: Fix typo, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 60/97] make-release: add skiboot .version file, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 34/97] tests: update acpi expected files, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 81/97] s390x: Return specification exception for unimplemented diag 308 subcodes, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 02/97] target/arm: Fix typo in do_sat_addsub_64, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 65/97] fmops: fix off-by-one in AR_TABLE and DR_TABLE array size, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 54/97] intel_iommu: introduce vtd_reset_caches(), Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 01/97] target/arm: Fix sign of sve_cmpeq_ppzw/sve_cmpne_ppzw, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 52/97] target/arm: Correct condition for v8M callee stack push,
Michael Roth <=
- [Qemu-stable] [PATCH 28/97] virtio: update MemoryRegionCaches when guest negotiates features, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 61/97] net: drop too large packet early, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 78/97] hw/s390x: Fix bad mask in time2tod(), Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 48/97] net: ignore packet size greater than INT_MAX, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 89/97] hw/rdma: another clang compilation fix, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 91/97] tpm_tis: fix loop that cancels any seizure by a lower locality, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 31/97] slirp: Add sanity check for str option length, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 53/97] nbd/server: fix NBD_CMD_CACHE, Michael Roth, 2019/04/01
- [Qemu-stable] [PATCH 74/97] iotests: make 235 work on s390 (and others), Michael Roth, 2019/04/01
- Re: [Qemu-stable] [PATCH 00/97] Patch Round-up for stable 3.0.1, freeze on 2019-04-08, Cole Robinson, 2019/04/02