From: AMEET M. PARANJAPE <aparanja@redhat.com> Date: Tue, 31 Mar 2009 11:05:14 -0400 Subject: [ppc] check for MSI-X also in rtas_msi_pci_irq_fixup() Message-id: 20090331150302.14954.47306.sendpatchset@squad5-lp1.lab.bos.redhat.com O-Subject: [PATCH RHEL5.4 BZ492580 4/8] Bugzilla: 492580 RH-Acked-by: David Howells <dhowells@redhat.com> RHBZ#: ====== https://bugzilla.redhat.com/show_bug.cgi?id=492580 Description: =========== We also need to check that the device isn't using MSI-X in the irq fixup routine, otherwise we might leave MSI-Xs configured at boot. RHEL Version Found: ================ RHEL 5.3 kABI Status: ============ No symbols were harmed. Brew: ===== Built on all platforms. http://brewweb.devel.redhat.com/brew/taskinfo?taskID=1744271 Upstream Status: ================ http://git.kernel.org/?p=linux/kernel/git/benh/powerpc.git;a=commit;h=649781f82782d142443d895b98edbd8be4e75c56 Test Status: ============ There is a testcase provided in the Bugzilla. A 'cat /proc/interrupts' should show the device drivers has two interrupt entries for each port. Run I/O tests. Then 'lspci -vv' should display the correct pci capabilities for the installed adapter and show the adapter is using MSI-X interrupts opposed to MSO or LSI interrupts. =============================================================== Ameet Paranjape 978-392-3903 ext 23903 IBM on-site partner Proposed Patch: =============== diff --git a/arch/powerpc/kernel/msi-rtas.c b/arch/powerpc/kernel/msi-rtas.c index afdbe6a..3aea3e9 100644 --- a/arch/powerpc/kernel/msi-rtas.c +++ b/arch/powerpc/kernel/msi-rtas.c @@ -249,8 +249,8 @@ static void rtas_msi_pci_irq_fixup(struct pci_dev *pdev) } /* No MSI -> MSIs can't have been assigned by fw, leave LSI */ - if (check_req_msi(pdev, 1)) { - dev_dbg(&pdev->dev, "rtas_msi: no req#msi, nothing to do.\n"); + if (check_req_msi(pdev, 1) && check_req_msix(pdev, 1)) { + dev_dbg(&pdev->dev, "rtas_msi: no req#msi/x, nothing to do.\n"); return; }