[POWERPC] mpic_u3msi: Failed allocation unnoticed
authorRoel Kluin <12o3l@tiscali.nl>
Wed, 23 Apr 2008 23:03:02 +0000 (09:03 +1000)
committerPaul Mackerras <paulus@samba.org>
Wed, 14 May 2008 12:31:25 +0000 (22:31 +1000)
bitmap_find_free_region(), called by mpic_msi_alloc_hwirqs() may return
signed, but hwirq is unsigned.  A failed allocation remains unnoticed.

Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/sysdev/mpic_u3msi.c

index 1d5a40899b74fac796ac814aad3d1a1c2c805a89..6e2f8686fdfc0471946b8344f75ed70c042150e3 100644 (file)
@@ -115,17 +115,19 @@ static int u3msi_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
        struct msi_desc *entry;
        struct msi_msg msg;
        u64 addr;
+       int ret;
 
        addr = find_ht_magic_addr(pdev);
        msg.address_lo = addr & 0xFFFFFFFF;
        msg.address_hi = addr >> 32;
 
        list_for_each_entry(entry, &pdev->msi_list, list) {
-               hwirq = mpic_msi_alloc_hwirqs(msi_mpic, 1);
-               if (hwirq < 0) {
+               ret = mpic_msi_alloc_hwirqs(msi_mpic, 1);
+               if (ret < 0) {
                        pr_debug("u3msi: failed allocating hwirq\n");
-                       return hwirq;
+                       return ret;
                }
+               hwirq = ret;
 
                virq = irq_create_mapping(msi_mpic->irqhost, hwirq);
                if (virq == NO_IRQ) {