[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4A7B633C.3040500@gmail.com>
Date: Thu, 06 Aug 2009 17:11:56 -0600
From: Robert Hancock <hancockrwd@...il.com>
To: Chetan.Loke@...lex.Com
CC: tony@...x.net, jgarzik@...ox.com, linux-ide@...r.kernel.org,
linux-kernel@...r.kernel.org, philipl@...rt.org,
Tejun Heo <tj@...nel.org>
Subject: Re: [PATCH 2.6.32 v2] MCP55 SATA2 conditional MSI support for sata_nv
On 08/06/2009 10:28 AM, Chetan.Loke@...lex.Com wrote:
>> -----Original Message-----
>> From: Tony Vroon [mailto:tony@...x.net]
>> Sent: Thursday, August 06, 2009 11:59 AM
>> To: Loke,Chetan
>> Cc: hancockrwd@...il.com; jgarzik@...ox.com; linux-ide@...r.kernel.org;
>> linux-kernel@...r.kernel.org; philipl@...rt.org
>> Subject: RE: [PATCH 2.6.32 v2] MCP55 SATA2 conditional MSI support for
>> sata_nv
>>
>>> disable_msi() is missing right?
>> I didn't add that as none of the other drivers have it:
>
> Then they would leak the MSI-vectors if request_irq fails.
>
>
>> chainsaw@...lthea /cvs/linux-2.6/drivers/ata $ grep _msi * | grep pci
>> ahci.c: pci_enable_msi(pdev);
>> sata_mv.c: if (msi&& pci_enable_msi(pdev) == 0)
>> sata_vsc.c: if (pci_enable_msi(pdev) == 0)
>>
>> (This is a tree without the sata_nv change I submitted)
>>
>> I do believe it is safe to shut the interrupt down and unload the
>> handler whilst it is still in MSI mode. At least, I don't see the libata
>> core special-casing it in any way.
>
> If I'm not wrong then that's how it's supposed to be done. free_irq and then disable_msi. You can't reverse the order. Also the driver should know when to quiesce the ASIC. So quiesce first and then shutdown everything.
Seems like devres should handle this somehow, or else something in
libata core.. Tejun?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists