Re: [PATCH 2/9] [SCSI] aacraid: Add Power Management support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2015-06-01 at 21:16 +0000, Rajinikanth Pandurangan wrote:
> -----Original Message-----
> From: James Bottomley [mailto:James.Bottomley@xxxxxxxxxxxxxxxxxxxxx] 
> Sent: Monday, June 01, 2015 8:15 AM
> To: Rajinikanth Pandurangan
> Cc: linux-scsi@xxxxxxxxxxxxxxx; aacraid@xxxxxxxxxxxxxx; Harry Yang; Rich Bono; Achim Leubner; Murthy Bhat
> Subject: Re: [PATCH 2/9] [SCSI] aacraid: Add Power Management support
> 
> On Wed, 2015-05-13 at 17:12 -0700, rajinikanth.pandurangan@xxxxxxxx
> 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.
> 
> [RajP] Yes, will change and make it part of next patchset.
> 
> > +
> > +	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.
> 
> [RajP] Yes, I had compiled against the kernel 4.0.0-rc2+ and did not
> get any compile error.  In fact, checkpatch didn't warn either.  Am I
> missing something?

Yes, this:

commit d8bf368d0631d4bc2612d8bf2e4e8e74e620d0cc
Author: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Date:   Thu Mar 5 15:23:08 2015 +0100

    genirq: Remove the deprecated 'IRQF_DISABLED' request_irq() flag
entirely

It went in in the merge window for 4.1.  However, IRQF_DISABLED has been
deprecated for long enough that you shouldn't have been using it anyway.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux