Re: [PATCH 2.6.32 v2] MCP55 SATA2 conditional MSI support for sata_nv

From: Robert Hancock
Date: Thu Aug 06 2009 - 19:12:09 EST


On 08/06/2009 10:28 AM, Chetan.Loke@xxxxxxxxxx wrote:
-----Original Message-----
From: Tony Vroon [mailto:tony@xxxxxxxx]
Sent: Thursday, August 06, 2009 11:59 AM
To: Loke,Chetan
Cc: hancockrwd@xxxxxxxxx; jgarzik@xxxxxxxxx; linux-ide@xxxxxxxxxxxxxxx;
linux-kernel@xxxxxxxxxxxxxxx; philipl@xxxxxxxxx
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@amalthea /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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/