Message ID | 20210416154939.32404-1-iii@linux.ibm.com |
---|---|
Headers | show |
Series | accel/tcg: Make sure that tb->size != 0 after translation | expand |
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.
On 4/23/21 3:31 AM, Cornelia Huck wrote: > 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. You've volunteered, so that means you get it, I think. ;-) r~
On Fri, 23 Apr 2021 10:50:59 -0700 Richard Henderson <richard.henderson@linaro.org> wrote: > On 4/23/21 3:31 AM, Cornelia Huck wrote: > > 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. > > You've volunteered, so that means you get it, I think. ;-) > > > r~ > I guessed as much :) Thanks for your review!
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(-) > Thanks, queued to s390-next.