From b47e816b540730d605d330346c69c5f99b3bad4a Mon Sep 17 00:00:00 2001 From: Michael Ellerman Date: Mon, 26 May 2008 12:12:30 +1000 Subject: [PATCH] --- yaml --- r: 101643 b: refs/heads/master c: 997526db9fa408058f23de19c0e12abd9207276b h: refs/heads/master i: 101641: 005ce63a56b5b3d80359199c2cba307e92809d1a 101639: 8b5d3a42e02134c3b7bdea285c5cb63348fa6484 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/cell/axon_msi.c | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 9ea1d4500c36..fb341c2061aa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7c4f10b9003dc8423df07574ba197bbbe3bc382b +refs/heads/master: 997526db9fa408058f23de19c0e12abd9207276b diff --git a/trunk/arch/powerpc/platforms/cell/axon_msi.c b/trunk/arch/powerpc/platforms/cell/axon_msi.c index 8b055bce27fe..b43defb9918c 100644 --- a/trunk/arch/powerpc/platforms/cell/axon_msi.c +++ b/trunk/arch/powerpc/platforms/cell/axon_msi.c @@ -358,6 +358,13 @@ static int axon_msi_probe(struct of_device *device, goto out_free_msic; } + virq = irq_of_parse_and_map(dn, 0); + if (virq == NO_IRQ) { + printk(KERN_ERR "axon_msi: irq parse and map failed for %s\n", + dn->full_name); + goto out_free_fifo; + } + msic->irq_host = irq_alloc_host(of_node_get(dn), IRQ_HOST_MAP_NOMAP, NR_IRQS, &msic_host_ops, 0); if (!msic->irq_host) { @@ -368,13 +375,6 @@ static int axon_msi_probe(struct of_device *device, msic->irq_host->host_data = msic; - virq = irq_of_parse_and_map(dn, 0); - if (virq == NO_IRQ) { - printk(KERN_ERR "axon_msi: irq parse and map failed for %s\n", - dn->full_name); - goto out_free_host; - } - set_irq_data(virq, msic); set_irq_chained_handler(virq, axon_msi_cascade); pr_debug("axon_msi: irq 0x%x setup for axon_msi\n", virq); @@ -399,8 +399,6 @@ static int axon_msi_probe(struct of_device *device, return 0; -out_free_host: - kfree(msic->irq_host); out_free_fifo: dma_free_coherent(&device->dev, MSIC_FIFO_SIZE_BYTES, msic->fifo_virt, msic->fifo_phys);