RE: [PATCH 2.6.32 v2] MCP55 SATA2 conditional MSI support forsata_nv

From: Chetan . Loke
Date: Thu Aug 06 2009 - 12:28:23 EST


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


> Regards,
> Tony V.

Regards
Chetan
--
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/