On Fri, Jul 29, 2022 at 11:04:47PM +0530, Jay Khandkar wrote: > On Fri, Jul 29, 2022 at 06:09:01PM +0100, Peter Maydell wrote: > > On Tue, 12 Jul 2022 at 19:38, Jay Khandkar <jaykhandkar2...@gmail.com> > > wrote: > > > > > > When the local APIC is in a software disabled state, all local interrupt > > > sources must be masked and all attempts to unmask them should be > > > ignored. Currently, we don't do either. Fix this by handling it > > > correctly in apic_mem_write(). > > > > > > Signed-off-by: Jay Khandkar <jaykhandkar2...@gmail.com> > > > --- > > > hw/intc/apic.c | 16 +++++++++++++--- > > > 1 file changed, 13 insertions(+), 3 deletions(-) > > > > > > diff --git a/hw/intc/apic.c b/hw/intc/apic.c > > > index 3df11c34d6..493c70af62 100644 > > > --- a/hw/intc/apic.c > > > +++ b/hw/intc/apic.c > > > @@ -792,9 +792,16 @@ static void apic_mem_write(void *opaque, hwaddr > > > addr, uint64_t val, > > > s->dest_mode = val >> 28; > > > break; > > > case 0x0f: > > > - s->spurious_vec = val & 0x1ff; > > > - apic_update_irq(s); > > > - break; > > > + { > > > + s->spurious_vec = val & 0x1ff; > > > + if (!(val & APIC_SPURIO_ENABLED)) { > > > + for (int i = 0; i < APIC_LVT_NB; i++) { > > > + s->lvt[i] |= APIC_LVT_MASKED; > > > + } > > > + } > > > + apic_update_irq(s); > > > + break; > > > + } > > > > What are the braces for here ? There's no local variable declaration... > > > > thanks > > -- PMM > You are right, the braces are unnecessary for that part. I just put them in to > create a neat visually separate block. Can get rid of them. > > Thanks, > Jay
Did you intend to send v2 of this? -- MST