[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 4/4] xen/arm: physical irq follow virtual irq



On Wed, 2014-06-11 at 15:47 +0100, Stefano Stabellini wrote:
> > > +void vgic_move_irqs(struct vcpu *v)
> > > +{
> > > +    const cpumask_t *cpu_mask = cpumask_of(v->processor);
> > > +    struct domain *d = v->domain;
> > > +    struct pending_irq *p;
> > > +    int i, j, k;
> > > +
> > > +    for ( i = 0; i < DOMAIN_NR_RANKS(d); i++ )
> > > +    {
> > > +        for ( j = 0 ; j < 8 ; j++ )
> > > +        {
> > > +            for ( k = 0; k < 4; k++ )
> > > +            {
> > > +                uint8_t target = 
> > > byte_read(d->arch.vgic.shared_irqs[i].itargets[j], 0, k);
> > 
> > i,j,k are pretty opaque here (and I wrote that before I saw the
> > machinations going on in the irq_to_pending call!).
> > 
> > Please just iterate over irqs and use the rank accessor functions to get
> > to the correct itargets to read. Which might be clearest with the
> > irq_to_rank helper I proposed on an earlier patch.
> 
> I hacked the alternative solution and I prefer this version.

But, but, this way is horrible! How much worse could the alternative
have been!



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.