Re: [PATCH 5/7] pci: Export the pci_restore_msi_state() function
From: Linas Vepstas <hidden>
Date: 2007-10-20 00:04:28
On Fri, Oct 19, 2007 at 05:36:17PM -0700, Michael Chan wrote:
On Fri, 2007-10-19 at 18:29 -0500, linas@austin.ibm.com wrote:quoted
On Fri, Oct 19, 2007 at 02:36:56PM -0700, Matt Carlson wrote:quoted
This patch exports the pci_restore_msi_state() function. This function is needed to restore the MSI state during PCI error recovery. Signed-off-by: Linas Vepstas <redacted> Signed-off-by: Matt Carlson <redacted> Signed-off-by: Michael Chan <mchan@broadcom.com>Davem, This patch is generically needed for recovery from PCI errors, and not just the tg3 that Matt is working on. Matt, there are also several msi-related bugs in the pseries architecture implementation, those patches will go out to Paul Mackerras seperately. I was hoping today ... but things came up. One little iddy-biddy problem is that the pseries is not actually *saving* the msi state, and so, ahem, the restore isn't quite working out either. I'm still trying to navigate around that.Linas, the MSI state is saved automatically when the driver calls pci_enable_msi(), so it doesn't need to be saved by pseries code.
I'm working in linux-2.6.23-rc8-mm1 at the moment, and I don't see that happening. viz. read_msi_msg() is not called anywhere, and I need to have valid msg->address_lo and msg->address_hi and msg->data in order to be able to restore. In particular, this has to happen after the call to arch_setup_msi_irqs as otherwise, the arch hasn't yet filled these fields with correct values. Perhaps this is fixed in the kernel you're working with? --linas