qemu/target-arm-Don-t-set-syndrome-ISS-for-loads-and-stor.patch
Jiabo Feng 39a0a891d8 QEMU update to version 6.2.0-86(master)
- vdpa: move memory listener to the realize stage
- vdpa: implement vdpa device migration
- vhost: implement post resume bh
- vhost: implement migration state notifier for vdpa device
- vhost: implement savevm_hanlder for vdpa device
- vhost: implement vhost_vdpa_device_suspend/resume
- vhost: implement vhost-vdpa suspend/resume
- vhost: add vhost_dev_suspend/resume_op
- vhost: introduce bytemap for vhost backend logging
- vhost-vdpa: add migration log ops for VhostOps
- vhost-vdpa: add VHOST_BACKEND_F_BYTEMAPLOG
- vhost: fix null pointer access
- ui/gtk: prevent ui lock up when dpy_gl_update called again before current draw event occurs
- hw/usb: dev-mtp: Use g_mkdir()
- target/ppc/cpu-models: Remove the "default" CPU alias
- hw/intc/arm_gicv3: ICC_PMR_EL1 high bits should be RAZ
- Fixed a QEMU hang when guest poweroff in COLO mode
- migration/colo: More accurate update checkpoint time
- scripts/entitlement.sh: Use backward-compatible cp flags
- block/nvme: fix infinite loop in nvme_free_req_queue_cb()
- hw/net: npcm7xx_emc fix missing queue_flush
- Add dummy Aspeed AST2600 Display Port MCU (DPMCU)
- hw/arm: ast2600: Fix address mapping of second SPI controller
- vhost-user-blk: reconnect on any error during realize
- vhost-user-blk: propagate error return from generic vhost
- hw/riscv: boot: Reduce FDT address alignment constraints
- Revert "hw/virtio/virtio-iommu-pci: Enforce the device is plugged on the root bus"
- Fix STM32F2XX USART data register readout
- block: use 'unsigned' for in_flight field on driver state
- sphinx: change default language to 'en'
- tests/qtest: Fix two format strings
- trivial typos: namesapce
- hw/ide/atapi.c: Correct typos (CD-CDROM -> CD-ROM)
- hw/virtio/virtio-iommu-pci: Enforce the device is plugged on the root bus
- hw/display/next-fb: Fix comment typo
- xen/pass-through: merge emulated bits correctly mainline inclusion commit be9c61da9fc57eb7d293f380d0805ca6f46c2657 category: bugfix
- tests/qtest/migration-test.c: spelling fix: bandwith
- target/i386/cpu: Improve error message for property "vendor"
- balloon: Fix a misleading error message
- target/arm: Don't set syndrome ISS for loads and  stores with writeback mainline inclusion commit 53ae2fdef1f5661cbaa2ea571c517f98e6041cb8 category: bugfix
- disas/hppa: Show hexcode of instruction along with disassembly
- tcg/loongarch64: Fix tcg_out_mov() Aborted
- ui/qmp-cmds: Improve two error messages
- qga: Improve guest-exec-status error message
- hmp: Improve sync-profile error message
- spapr/pci: Correct "does not support hotplugging error messages
- xen/pass-through: don't create needless register  group mainline inclusion commit c0e86b7624cb9d6db03e0d48cf82659e5b89a6a6 category: bugfix

Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com>
2023-12-05 18:01:05 +08:00

52 lines
1.8 KiB
Diff

From dd5bf5817259ea414f40b25f4aef3864eddb9706 Mon Sep 17 00:00:00 2001
From: tangbinzy <tangbin_yewu@cmss.chinamobile.com>
Date: Mon, 27 Nov 2023 03:24:57 +0000
Subject: [PATCH] target/arm: Don't set syndrome ISS for loads and stores with
writeback mainline inclusion commit 53ae2fdef1f5661cbaa2ea571c517f98e6041cb8
category: bugfix
---------------------------------------------------------------
The architecture requires that for faults on loads and stores which
do writeback, the syndrome information does not have the ISS
instruction syndrome information (i.e. ISV is 0). We got this wrong
for the load and store instructions covered by disas_ldst_reg_imm9().
Calculate iss_valid correctly so that if the insn is a writeback one
it is false.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1057
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220715123323.1550983-1-peter.maydell@linaro.org
Signed-off-by: tangbinzy <tangbin_yewu@cmss.chinamobile.com>
---
target/arm/translate-a64.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
index cec672f229..549a671bea 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/translate-a64.c
@@ -3039,7 +3039,7 @@ static void disas_ldst_reg_imm9(DisasContext *s, uint32_t insn,
bool is_store = false;
bool is_extended = false;
bool is_unpriv = (idx == 2);
- bool iss_valid = !is_vector;
+ bool iss_valid;
bool post_index;
bool writeback;
int memidx;
@@ -3092,6 +3092,8 @@ static void disas_ldst_reg_imm9(DisasContext *s, uint32_t insn,
g_assert_not_reached();
}
+ iss_valid = !is_vector && !writeback;
+
if (rn == 31) {
gen_check_sp_alignment(s);
}
--
2.27.0