hw/pl011.c: Avoid crash on read when no chr backend present
Add a missing guard that meant we would segfault if the guest read UARTDR on a PL011 serial device which had no chr backend connected. (This didn't happen for Linux guests because Linux reads the flags register and doesn't try to read the UART if it's empty.) Reported-by: Christian Müller <christian.mueller@heig-vd.ch> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
61dc008f35
commit
0d4abda8f7
@ -78,7 +78,9 @@ static uint64_t pl011_read(void *opaque, target_phys_addr_t offset,
|
|||||||
if (s->read_count == s->read_trigger - 1)
|
if (s->read_count == s->read_trigger - 1)
|
||||||
s->int_level &= ~ PL011_INT_RX;
|
s->int_level &= ~ PL011_INT_RX;
|
||||||
pl011_update(s);
|
pl011_update(s);
|
||||||
qemu_chr_accept_input(s->chr);
|
if (s->chr) {
|
||||||
|
qemu_chr_accept_input(s->chr);
|
||||||
|
}
|
||||||
return c;
|
return c;
|
||||||
case 1: /* UARTCR */
|
case 1: /* UARTCR */
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user