|
From: | Jay Khandkar |
Subject: | Re: [PATCH] hw/intc: Handle software disabling of APIC correctly |
Date: | Wed, 7 Sep 2022 23:29:27 +0530 |
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 <jaykhandkar2002@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 <jaykhandkar2002@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
[Prev in Thread] | Current Thread | [Next in Thread] |