|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v10 03/10] xen/arm: inflight irqs during migration
On Tue, 5 Aug 2014, Julien Grall wrote:
> Hi Stefano,
>
> On 08/05/2014 12:26 PM, Stefano Stabellini wrote:
> > We need to take special care when migrating irqs that are already
> > inflight from one vcpu to another. See "The effect of changes to an
> > GICD_ITARGETSR", part of chapter 4.3.12 of the ARM Generic Interrupt
> > Controller Architecture Specification.
>
> NIT: Can you give the reference of the book? ie: IHI 0048B
>
> [..]
>
> > + i = 0;
> > + while ( (i = find_next_bit(&target, 32, i)) < 32 )
> > + {
> > + unsigned int irq, new_target, old_target;
> > + unsigned long old_target_mask;
> > + struct vcpu *v_target, *v_old;
> > +
> > + new_target = i % 8;
> > + old_target_mask =
> > vgic_byte_read(rank->itargets[REG_RANK_INDEX(8, gicd_reg - GICD_ITARGETSR,
> > DABT_WORD)], 0, i/8);
>
> Can you try to split this line?
>
> > + old_target = find_first_bit(&old_target_mask, 8);
> > +
> > + if ( new_target != old_target )
> > + {
> > + irq = gicd_reg + (i / 8);
>
> gicd_reg contains the register offset (i.e GICD_ITARGETSR + off). How
> can you get the correct IRQ number here?
>
> I think this should be
>
> irq = gicd_reg - GICD_ITARGETSR + (i / 8);
You are right. I have no idea how I didn't spot it before.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |