Skip to content
Snippets Groups Projects
user avatar
Richard Henderson authored
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: 683a247e ("target/microblaze: Store "current" iflags in insn_start")
Tested-by: default avatarThomas Huth <thuth@redhat.com>
Reported-by: default avatarThomas Huth <thuth@redhat.com>
Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
Message-Id: <20200904190842.2282109-2-richard.henderson@linaro.org>
Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
88e74b61
History
Name Last commit Last update