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
|