From b10fbd2b80add5063102bd520c45c820eac47133 Mon Sep 17 00:00:00 2001 From: Stanislaw Gruszka Date: Wed, 12 Sep 2007 14:11:45 +0000 Subject: [PATCH] Request irq after pci initialization is finished. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@187 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- qla_isp/linux/isp_pci.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/qla_isp/linux/isp_pci.c b/qla_isp/linux/isp_pci.c index c9c41ea6f..971391d17 100644 --- a/qla_isp/linux/isp_pci.c +++ b/qla_isp/linux/isp_pci.c @@ -909,8 +909,7 @@ isplinux_pci_init(struct Scsi_Host *host) pci_release_regions(isp_pci->pci_dev); return (1); } - - irq = isp_pci->pci_dev->irq; + (void) PRDW(isp_pci, PCI_COMMAND, &cmd); if ((cmd & PCI_CMD_ISP) != pci_cmd_isp) { @@ -1146,12 +1145,6 @@ isplinux_pci_init(struct Scsi_Host *host) } #endif - if (request_irq(irq, isplinux_intr, ISP_IRQ_FLAGS, isp->isp_name, isp_pci)) { - printk("%s: could not snag irq %u (0x%x)\n", loc, irq, irq); - goto bad; - } - host->irq = irq; - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) host->select_queue_depths = isplinux_sqd; #endif @@ -1212,14 +1205,16 @@ isplinux_pci_init(struct Scsi_Host *host) } else { host->max_cmd_len = 12; } + + irq = isp_pci->pci_dev->irq; + if (request_irq(irq, isplinux_intr, ISP_IRQ_FLAGS, isp->isp_name, isp_pci)) { + printk("%s: could not snag irq %u (0x%x)\n", loc, irq, irq); + goto bad; + } + host->irq = irq; return (0); bad: - if (host->irq) { - ISP_DISABLE_INTS(isp); - free_irq(host->irq, isp_pci); - host->irq = 0; - } if (isp_pci->vaddr != 0) { unmap_pci_mem(isp_pci, 0xff); isp_pci->vaddr = 0;