On Mon, Oct 18, 2021 at 10:40 AM Alistair Francis <alistair.fran...@opensource.wdc.com> wrote: > > From: Alistair Francis <alistair.fran...@wdc.com> > > Signed-off-by: Alistair Francis <alistair.fran...@wdc.com> > --- > hw/intc/sifive_plic.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c > index 877e76877c..5444368ad4 100644 > --- a/hw/intc/sifive_plic.c > +++ b/hw/intc/sifive_plic.c > @@ -355,6 +355,18 @@ static const MemoryRegionOps sifive_plic_ops = { > } > }; > > +static void sifive_plic_reset(DeviceState *dev) > +{ > + SiFivePLICState *s = SIFIVE_PLIC(dev); > + > + memset(s->claimed, 0, sizeof(uint32_t) * s->bitfield_words);
This line should be removed. > + memset(s->source_priority, 0, sizeof(uint32_t) * s->num_sources); > + memset(s->target_priority, 0, sizeof(uint32_t) * s->num_addrs); > + memset(s->pending, 0, sizeof(uint32_t) * s->bitfield_words); > + memset(s->claimed, 0, sizeof(uint32_t) * s->bitfield_words); > + memset(s->enable, 0, sizeof(uint32_t) * s->num_enables); > +} > + > /* > * parse PLIC hart/mode address offset config > * > @@ -501,6 +513,7 @@ static void sifive_plic_class_init(ObjectClass *klass, > void *data) > { > DeviceClass *dc = DEVICE_CLASS(klass); > > + dc->reset = sifive_plic_reset; > device_class_set_props(dc, sifive_plic_properties); > dc->realize = sifive_plic_realize; > dc->vmsd = &vmstate_sifive_plic; Regards, Bin