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

[Xen-devel] Re: [PATCH 02/12] xen: events: do not leak IRQ from xen_allocate_pirq_msi when no pirq available.



On Fri, 18 Feb 2011, Ian Campbell wrote:
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
> ---
>  drivers/xen/events.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/xen/events.c b/drivers/xen/events.c
> index c536157..41a8a65 100644
> --- a/drivers/xen/events.c
> +++ b/drivers/xen/events.c
> @@ -666,8 +666,11 @@ void xen_allocate_pirq_msi(char *name, int *irq, int 
> *pirq, int alloc)
>  
>       if (alloc & XEN_ALLOC_PIRQ) {
>               *pirq = find_unbound_pirq(MAP_PIRQ_TYPE_MSI);
> -             if (*pirq == -1)
> +             if (*pirq == -1) {
> +                     xen_free_irq(*irq);
> +                     *irq = -1;
>                       goto out;
> +             }
>       }
>  
>       set_irq_chip_and_handler_name(*irq, &xen_pirq_chip,
 
What if the caller didn't pass XEN_ALLOC_IRQ?
*irq could contain garbage here.
Considering that later on you are removing XEN_ALLOC_IRQ altogether,
maybe you just need to move this patch afterwards.

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


 


Rackspace

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