]> Git Repo - qemu.git/commit
target/microblaze: Collected fixes for env->iflags
authorRichard Henderson <[email protected]>
Fri, 4 Sep 2020 19:08:24 +0000 (12:08 -0700)
committerThomas Huth <[email protected]>
Mon, 7 Sep 2020 10:34:17 +0000 (12:34 +0200)
commit88e74b6122bb40852b1c98befd47a572f0c06930
treeffc95474b4531f624455deba98b68409cc98fe30
parentcc9962d8ea80b39118d921109fd2f8db308e1d4a
target/microblaze: Collected fixes for env->iflags

There are several problems here that can result in soft lockup,
depending on exactly where an interrupt or exception is delivered:

Include BIMM_FLAG in IFLAGS_TB_MASK, since it needs to follow D_FLAG.
Ensure that iflags is 0 when entering an interrupt/exception handler.
Add mb_cpu_synchronize_from_tb to restore iflags from tb->flags.
The change to t_sync_flags is cosmetic, but makes the code clearer.

This fixes the reported regression in acceptance/replay_kernel.py.

Fixes: 683a247ed7a4 ("target/microblaze: Store "current" iflags in insn_start")
Tested-by: Thomas Huth <[email protected]>
Reported-by: Thomas Huth <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-Id: <20200904190842.2282109[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
target/microblaze/cpu.c
target/microblaze/cpu.h
target/microblaze/helper.c
target/microblaze/translate.c
This page took 0.026239 seconds and 4 git commands to generate.