On Fri, 16 Apr 2021 17:49:35 +0200
Ilya Leoshkevich <iii@linux.ibm.com> wrote:
> If arch-specific code generates a translation block of size 0,
> tb_gen_code() may generate a spurious exception.
>
> Fix s390x (patch 1), ARM (patch 2) and xtensa (patch 3) and add an
> assertion in order to catch such situations earlier (patch 4).
>
> v1: https://lists.nongnu.org/archive/html/qemu-devel/2021-04/msg02037.html
> v1 -> v2: Fix target/s390x instead of trying to tolerate tb->size == 0
> in tb_gen_code().
>
> v2: https://lists.nongnu.org/archive/html/qemu-devel/2021-04/msg02101.html
> v2 -> v3: Split the common code change into a separate patch, add the
> ARM patch in order to fix
> https://gitlab.com/cohuck/qemu/-/jobs/1178409450
>
> v3: https://lists.nongnu.org/archive/html/qemu-devel/2021-04/msg02332.html
> v3 -> v4: Add the xtensa patch in order to fix
> https://gitlab.com/cohuck/qemu/-/jobs/1178409540
>
> v4: https://lists.nongnu.org/archive/html/qemu-devel/2021-04/msg02592.html
> v4 -> v5: Handle thumb: the following C code triggers the assertion:
> typedef void (*funcptr)(void);
> int main() { funcptr f = (funcptr)0xffff0001; f(); }
>
> Ilya Leoshkevich (4):
> target/s390x: Fix translation exception on illegal instruction
> target/arm: Make sure that commpage's tb->size != 0
> target/xtensa: Make sure that tb->size != 0
> accel/tcg: Assert that tb->size != 0 after translation
>
> accel/tcg/translate-all.c | 1 +
> target/arm/translate.c | 2 ++
> target/s390x/translate.c | 16 +++++++++++-----
> target/xtensa/translate.c | 3 +++
> 4 files changed, 17 insertions(+), 5 deletions(-)
>
So, what's the way forward here? I can pick this if I get an ack for
the arm patch. If someone else wants to take this, I'll just ack the
s390x patch.