Re: [PATCH 5/7] pci: Export the pci_restore_msi_state() function
From: Linas Vepstas <hidden>
Date: 2007-10-20 00:25:49
On Fri, Oct 19, 2007 at 06:12:03PM -0700, Michael Chan wrote:
On Fri, 2007-10-19 at 19:04 -0500, linas@austin.ibm.com wrote:quoted
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?It's possible that this doesn't work on pseries. I've only tested pci_restore_msi_state() on x86 in the context of suspend and resume. During resume, the MSI state gets restored correctly on x86.
:-) Yes, I think that is being done in arch/i386/kernel/io_apic.c and arch/ia64/kernel/msi_ia64.c and etc. but its not being done on most of the powerpc's. Its possible that none of the old macintosh laptops use msi, and so no one noticed before; I know that no one ever suspends/resumes the big servers I work on, sooo :-) Actually, looking at arch/i386/kernel/io_apic.c, it looks like the msi state is being saved only when CONFIG_SMP is set, so it seems to me that the restore will fail on uni systems ... are there any of those left? --linas