WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Re: [PATCH 09/22] xen: Find an unbound irq number in rev

On Thu, Oct 07, 2010 at 11:38:49AM +0100, Stefano Stabellini wrote:
> On Wed, 6 Oct 2010, Konrad Rzeszutek Wilk wrote:
> > > 
> > > Unfortunately this is the wrong way to fix the issue: Xen has a range of
> > > allowed pirq for each domain and we don't know exactly what is the
> > > maximum pirq (see my patch "xen: get the maximum number of pirqs from
> > > xen" [1]).
> > 
> > > Considering that we might use the irq number returned by
> > > find_unbound_irq through xen_allocate_pirq as pirq number in some cases,
> > 
> > Ah, but we wouldn't! We would end up only using the 'find_unbound_irq' for
> > event channels. For IRQs that are for physical devices (either being
> > real devices passed in or QEMU PCI devices) we end up requesting an IRQ that
> > matches whatever the device has defined in dev->irq (or whatever the
> > vectors values for MSI/MSI-X devices that is provided) via the Xen PCI 
> > frontend
> > driver (in case of QEMU whatever its emulation provides).
> > 
> > > starting from the highest value could be unsafe.
> > > In practice it should be impossible to see this issue because it can
> > > only happen if the irq returned by xen_allocate_pirq is higher than the
> > > max pirq in xen. However AFAIK when we call xen_allocate_pirq with the
> > > intention of using the return value as pirq we always fall in the if
> > > (identity_mapped_irq(gsi) || !xen_initial_domain()) that avoid calling
> > > find_unbound_irq.
> > 
> > Right, and we end up using an the pirq/gsi number at that point. This
> > patch would not touch that logic.
> 
> What about adding a comment on top of xen_allocate_pirq like the
> following:
> 
> /* xen_allocate_irq might allocate irqs from the top down, as a
>  * consequence don't assume that the irq number returned has a low value
>  * or can be used as a pirq number unless you know otherwise.
>  *
>  * One notable exception is when xen_allocate_irq is called passing an
>  * hardware gsi as argument, in that case the irq number returned
>  * matches the gsi number passed as first argument.
>  */

Done!

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>