diff options
author | Kenneth Jia <kenneth_jia@asus.com> | 2024-12-12 20:42:04 +0800 |
---|---|---|
committer | Cédric Le Goater <clg@redhat.com> | 2025-01-27 09:38:15 +0100 |
commit | 8a139ae719616d85d835528a35f41eb23bfa54c7 (patch) | |
tree | b21c8b2c97e52cc86c8781fce9fb9e742b420b77 | |
parent | ed734377ab3f3f3cc15d7aa301a87ab6370f2eed (diff) | |
download | qemu-8a139ae719616d85d835528a35f41eb23bfa54c7.zip qemu-8a139ae719616d85d835528a35f41eb23bfa54c7.tar.gz qemu-8a139ae719616d85d835528a35f41eb23bfa54c7.tar.bz2 |
hw/arm/aspeed: fix connect_serial_hds_to_uarts
In the loop, we need ignore the index increase when uart == uart_chosen
We should increase the index only after we allocate a serial.
Signed-off-by: Kenneth Jia <kenneth_jia@asus.com>
Fixes: d2b3eaefb4d7 ("aspeed: Refactor UART init for multi-SoC machines")
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/r/5f9b0c53f1644922ba85522046e92f4c@asus.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
-rw-r--r-- | hw/arm/aspeed.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index a18d4ed..2662465 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -364,11 +364,11 @@ static void connect_serial_hds_to_uarts(AspeedMachineState *bmc) int uart_chosen = bmc->uart_chosen ? bmc->uart_chosen : amc->uart_default; aspeed_soc_uart_set_chr(s, uart_chosen, serial_hd(0)); - for (int i = 1, uart = sc->uarts_base; i < sc->uarts_num; i++, uart++) { + for (int i = 1, uart = sc->uarts_base; i < sc->uarts_num; uart++) { if (uart == uart_chosen) { continue; } - aspeed_soc_uart_set_chr(s, uart, serial_hd(i)); + aspeed_soc_uart_set_chr(s, uart, serial_hd(i++)); } } |