On Wed, 2015-05-13 at 17:12 -0700, [email protected]
wrote:
> diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
> index 9eec027..be30e43 100644
> --- a/drivers/scsi/aacraid/linit.c
> +++ b/drivers/scsi/aacraid/linit.c
> @@ -1317,6 +1317,149 @@ static int aac_probe_one(struct pci_dev *pdev, const
> struct pci_device_id *id)
> return error;
> }
>
> +#if (defined(CONFIG_PM))
> +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(aac->msixentry[i].vector,
> + &(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);
> +
> +}
> +
> +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
> + * can handle.
> + */
> + while (!((status = src_readl(dev, MUnit.OMR)) & KERNEL_UP_AND_RUNNING)
> + || status == 0xffffffff)
> + msleep(1);
checkpatch would warn you not to do this. Use msleep(20) to keep it
quiet.
> +
> + aac_adapter_disable_int(dev);
> + aac_adapter_enable_int(dev);
> +
> +
> + if ((dev->pdev->device == PMC_DEVICE_S7 ||
> + dev->pdev->device == PMC_DEVICE_S8 ||
> + dev->pdev->device == PMC_DEVICE_S9))
> + aac_define_int_mode(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(dev->msixentry[i].vector,
> + 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(dev->msixentry[j].vector,
> + &(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|IRQF_DISABLED, "aacraid",
> + &(dev->aac_msix[0])) < 0) {
And this won't compile:
drivers/scsi/aacraid/linit.c: In function ‘aac_acquire_resources’:
drivers/scsi/aacraid/linit.c:1395:16: error: ‘IRQF_DISABLED’ undeclared
(first use in this function)
IRQF_SHARED|IRQF_DISABLED, "aacraid",
Please run checkpatch and compile against the kernel you're submitting
for. The reason for this failure is that IRQF_DISABLED got eliminated
from the kernel somewhere in the 3.x series.
James
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html