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; >