Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- hw/pci-host/bonito.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c index fe94e6740b5..104c58331d0 100644 --- a/hw/pci-host/bonito.c +++ b/hw/pci-host/bonito.c @@ -244,7 +244,6 @@ static void bonito_writel(void *opaque, hwaddr addr, { PCIBonitoState *s = opaque; uint32_t saddr; - int reset = 0; saddr = addr >> 2; @@ -277,13 +276,12 @@ static void bonito_writel(void *opaque, hwaddr addr, s->regs[saddr] = val; break; case BONITO_BONGENCFG: - if (!(s->regs[saddr] & 0x04) && (val & 0x04)) { - reset = 1; /* bit 2 jump from 0 to 1 cause reset */ - } - s->regs[saddr] = val; - if (reset) { + if (!FIELD_EX32(s->regs[saddr], BONGENCFG, CPUSELFRESET) + && FIELD_EX32(val, BONGENCFG, CPUSELFRESET)) { + /* bit 2 jump from 0 to 1 cause reset */ qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); } + s->regs[saddr] = val; break; case BONITO_INTENSET: s->regs[BONITO_INTENSET] = val; -- 2.26.2