[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 10/13] serial-isa: Use MAX_ISA_SERIAL_PORTS inst
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH 10/13] serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS |
Date: |
Fri, 20 Apr 2018 13:57:55 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 |
On 04/20/2018 11:52 AM, Peter Maydell wrote:
> The ISA serial port handling in serial-isa.c imposes a limit
> of 4 serial ports. This is because we only know of 4 IO port
> and IRQ settings for them, and is unrelated to the generic
> MAX_SERIAL_PORTS limit, though they happen to both be set at
> 4 currently.
>
> Use a new MAX_ISA_SERIAL_PORTS wherever that is the correct
> limit to be checking against.
>
> Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Except PNV:
Tested-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> include/hw/char/serial.h | 3 +++
> hw/char/serial-isa.c | 10 +++++-----
> hw/i386/pc.c | 2 +-
> hw/mips/mips_r4k.c | 2 +-
> hw/ppc/pnv.c | 2 +-
> hw/sparc64/sun4u.c | 2 +-
> 6 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h
> index c4daf11a14..0acfbbc382 100644
> --- a/include/hw/char/serial.h
> +++ b/include/hw/char/serial.h
> @@ -95,6 +95,9 @@ SerialState *serial_mm_init(MemoryRegion *address_space,
> Chardev *chr, enum device_endian end);
>
> /* serial-isa.c */
> +
> +#define MAX_ISA_SERIAL_PORTS 4
> +
> #define TYPE_ISA_SERIAL "isa-serial"
> void serial_hds_isa_init(ISABus *bus, int from, int to);
>
> diff --git a/hw/char/serial-isa.c b/hw/char/serial-isa.c
> index eb5996159d..116b7b2e69 100644
> --- a/hw/char/serial-isa.c
> +++ b/hw/char/serial-isa.c
> @@ -39,10 +39,10 @@ typedef struct ISASerialState {
> SerialState state;
> } ISASerialState;
>
> -static const int isa_serial_io[MAX_SERIAL_PORTS] = {
> +static const int isa_serial_io[MAX_ISA_SERIAL_PORTS] = {
> 0x3f8, 0x2f8, 0x3e8, 0x2e8
> };
> -static const int isa_serial_irq[MAX_SERIAL_PORTS] = {
> +static const int isa_serial_irq[MAX_ISA_SERIAL_PORTS] = {
> 4, 3, 4, 3
> };
>
> @@ -56,9 +56,9 @@ static void serial_isa_realizefn(DeviceState *dev, Error
> **errp)
> if (isa->index == -1) {
> isa->index = index;
> }
> - if (isa->index >= MAX_SERIAL_PORTS) {
> + if (isa->index >= MAX_ISA_SERIAL_PORTS) {
> error_setg(errp, "Max. supported number of ISA serial ports is %d.",
> - MAX_SERIAL_PORTS);
> + MAX_ISA_SERIAL_PORTS);
> return;
> }
> if (isa->iobase == -1) {
> @@ -138,7 +138,7 @@ void serial_hds_isa_init(ISABus *bus, int from, int to)
> int i;
>
> assert(from >= 0);
> - assert(to <= MAX_SERIAL_PORTS);
> + assert(to <= MAX_ISA_SERIAL_PORTS);
>
> for (i = from; i < to; ++i) {
> if (serial_hd(i)) {
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index d36bac8c89..b297a5d63b 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1524,7 +1524,7 @@ static void pc_superio_init(ISABus *isa_bus, bool
> create_fdctrl, bool no_vmport)
> qemu_irq *a20_line;
> ISADevice *i8042, *port92, *vmmouse;
>
> - serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS);
> + serial_hds_isa_init(isa_bus, 0, MAX_ISA_SERIAL_PORTS);
> parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS);
>
> for (i = 0; i < MAX_FD; i++) {
> diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
> index aeadc4a340..e04b49d3c5 100644
> --- a/hw/mips/mips_r4k.c
> +++ b/hw/mips/mips_r4k.c
> @@ -274,7 +274,7 @@ void mips_r4k_init(MachineState *machine)
>
> pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
>
> - serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS);
> + serial_hds_isa_init(isa_bus, 0, MAX_ISA_SERIAL_PORTS);
>
> isa_vga_init(isa_bus);
>
> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
> index 98ee3c607a..549cfccdcb 100644
> --- a/hw/ppc/pnv.c
> +++ b/hw/ppc/pnv.c
> @@ -648,7 +648,7 @@ static void pnv_init(MachineState *machine)
> pnv->isa_bus = pnv_isa_create(pnv->chips[0]);
>
> /* Create serial port */
> - serial_hds_isa_init(pnv->isa_bus, 0, MAX_SERIAL_PORTS);
> + serial_hds_isa_init(pnv->isa_bus, 0, MAX_ISA_SERIAL_PORTS);
>
> /* Create an RTC ISA device too */
> mc146818_rtc_init(pnv->isa_bus, 2000, NULL);
> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> index 9b441f704b..1bede85370 100644
> --- a/hw/sparc64/sun4u.c
> +++ b/hw/sparc64/sun4u.c
> @@ -298,7 +298,7 @@ static void ebus_realize(PCIDevice *pci_dev, Error **errp)
> 0, NULL, 115200, serial_hd(i), DEVICE_BIG_ENDIAN);
> i++;
> }
> - serial_hds_isa_init(s->isa_bus, i, MAX_SERIAL_PORTS);
> + serial_hds_isa_init(s->isa_bus, i, MAX_ISA_SERIAL_PORTS);
>
> /* Parallel ports */
> parallel_hds_isa_init(s->isa_bus, MAX_PARALLEL_PORTS);
>