mirror of https://gitee.com/openkylin/linux.git
scsi: aacraid: Remove duplicate irq management code
Removed duplicate code that for acquiring and releasing irqs Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com> Signed-off-by: Dave Carroll <David.Carroll@microsemi.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
86e6828a8a
commit
d3e1917500
|
@ -1327,35 +1327,12 @@ static int aac_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
|
||||
static void aac_release_resources(struct aac_dev *aac)
|
||||
{
|
||||
int i;
|
||||
|
||||
aac_adapter_disable_int(aac);
|
||||
if (aac->pdev->device == PMC_DEVICE_S6 ||
|
||||
aac->pdev->device == PMC_DEVICE_S7 ||
|
||||
aac->pdev->device == PMC_DEVICE_S8 ||
|
||||
aac->pdev->device == PMC_DEVICE_S9) {
|
||||
if (aac->max_msix > 1) {
|
||||
for (i = 0; i < aac->max_msix; i++)
|
||||
free_irq(pci_irq_vector(aac->pdev, i),
|
||||
&(aac->aac_msix[i]));
|
||||
} else {
|
||||
free_irq(aac->pdev->irq, &(aac->aac_msix[0]));
|
||||
}
|
||||
} else {
|
||||
free_irq(aac->pdev->irq, aac);
|
||||
}
|
||||
if (aac->msi)
|
||||
pci_disable_msi(aac->pdev);
|
||||
else if (aac->max_msix > 1)
|
||||
pci_disable_msix(aac->pdev);
|
||||
|
||||
aac_free_irq(aac);
|
||||
}
|
||||
|
||||
static int aac_acquire_resources(struct aac_dev *dev)
|
||||
{
|
||||
int i, j;
|
||||
int instance = dev->id;
|
||||
const char *name = dev->name;
|
||||
unsigned long status;
|
||||
/*
|
||||
* First clear out all interrupts. Then enable the one's that we
|
||||
|
@ -1377,37 +1354,8 @@ static int aac_acquire_resources(struct aac_dev *dev)
|
|||
if (dev->msi_enabled)
|
||||
aac_src_access_devreg(dev, AAC_ENABLE_MSIX);
|
||||
|
||||
if (!dev->sync_mode && dev->msi_enabled && dev->max_msix > 1) {
|
||||
for (i = 0; i < dev->max_msix; i++) {
|
||||
dev->aac_msix[i].vector_no = i;
|
||||
dev->aac_msix[i].dev = dev;
|
||||
|
||||
if (request_irq(pci_irq_vector(dev->pdev, i),
|
||||
dev->a_ops.adapter_intr,
|
||||
0, "aacraid", &(dev->aac_msix[i]))) {
|
||||
printk(KERN_ERR "%s%d: Failed to register IRQ for vector %d.\n",
|
||||
name, instance, i);
|
||||
for (j = 0 ; j < i ; j++)
|
||||
free_irq(pci_irq_vector(dev->pdev, j),
|
||||
&(dev->aac_msix[j]));
|
||||
pci_disable_msix(dev->pdev);
|
||||
goto error_iounmap;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
dev->aac_msix[0].vector_no = 0;
|
||||
dev->aac_msix[0].dev = dev;
|
||||
|
||||
if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr,
|
||||
IRQF_SHARED, "aacraid",
|
||||
&(dev->aac_msix[0])) < 0) {
|
||||
if (dev->msi)
|
||||
pci_disable_msi(dev->pdev);
|
||||
printk(KERN_ERR "%s%d: Interrupt unavailable.\n",
|
||||
name, instance);
|
||||
goto error_iounmap;
|
||||
}
|
||||
}
|
||||
if (aac_acquire_irq(dev))
|
||||
goto error_iounmap;
|
||||
|
||||
aac_adapter_enable_int(dev);
|
||||
|
||||
|
|
Loading…
Reference in New Issue