On 04/20/2018 11:52 AM, Peter Maydell wrote:
> The superio device has a limit on the number of serial
> ports it supports which is really only there because
> it has a fixed-size array serial[]. This limit isn't
> related particularly to the global MAX_SERIAL_PORTS limit,
> so use a different #define for it.
> 
> (In practice the users of superio only ever want 2 serial ports.)

The F81866A and IT8783 have 6 uarts :)

For this reason I'd prefer to dynamically allocate
ISASuperIODevice->serial, I might add that later on top of your series.

> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>

Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4...@amsat.org>

> ---
>  include/hw/isa/superio.h | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
> index f9ba29aa30..345f006081 100644
> --- a/include/hw/isa/superio.h
> +++ b/include/hw/isa/superio.h
> @@ -22,13 +22,15 @@
>  #define ISA_SUPERIO_CLASS(klass) \
>      OBJECT_CLASS_CHECK(ISASuperIOClass, (klass), TYPE_ISA_SUPERIO)
>  
> +#define SUPERIO_MAX_SERIAL_PORTS 4
> +
>  typedef struct ISASuperIODevice {
>      /*< private >*/
>      ISADevice parent_obj;
>      /*< public >*/
>  
>      ISADevice *parallel[MAX_PARALLEL_PORTS];
> -    ISADevice *serial[MAX_SERIAL_PORTS];
> +    ISADevice *serial[SUPERIO_MAX_SERIAL_PORTS];
>      ISADevice *floppy;
>      ISADevice *kbc;
>      ISADevice *ide;
> 

Reply via email to