-----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.