mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-19 22:18:37 -07:00
The Error ** argument must be NULL, &error_abort, &error_fatal, or a pointer to a variable containing NULL. Passing an argument of the latter kind twice without clearing it in between is wrong: if the first call sets an error, it no longer points to NULL for the second call. riscv_harts_realize() is wrong that way: it passes @errp to riscv_hart_realize() in a loop. I can't tell offhand whether this can fail. Fix by checking for failure in each iteration. Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Alistair Francis <Alistair.Francis@wdc.com> Cc: Sagar Karandikar <sagark@eecs.berkeley.edu> Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Cc: Bin Meng <bmeng.cn@gmail.com> Cc: qemu-riscv@nongnu.org Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20200630090351.1247703-19-armbru@redhat.com> |
||
|---|---|---|
| .. | ||
| boot.c | ||
| Kconfig | ||
| Makefile.objs | ||
| opentitan.c | ||
| riscv_hart.c | ||
| riscv_htif.c | ||
| sifive_clint.c | ||
| sifive_e.c | ||
| sifive_e_prci.c | ||
| sifive_gpio.c | ||
| sifive_plic.c | ||
| sifive_test.c | ||
| sifive_u.c | ||
| sifive_u_otp.c | ||
| sifive_u_prci.c | ||
| sifive_uart.c | ||
| spike.c | ||
| trace-events | ||
| virt.c | ||