From patchwork Wed Oct 10 07:51:21 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v3,2/2] x86, pci: Enable PCI INTx when MSI is disabled From: Takao Indoh X-Patchwork-Id: 190574 Message-Id: <20121010074612.1084.52398.sendpatchset@indoh> To: linux-pci@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org Cc: martin.wilck@ts.fujitsu.com, kexec@lists.infradead.org, hbabu@us.ibm.com, andi@firstfloor.org, ddutile@redhat.com, vgoyal@redhat.com, ishii.hironobu@jp.fujitsu.com, hpa@zytor.com, bhelgaas@google.com, tglx@linutronix.de, mingo@redhat.com, Takao Indoh Date: Wed, 10 Oct 2012 16:51:21 +0900 (JST) This patch enables INTx if MSI is disabled in pcibios_enable_device(). In normal case interrupt disable bit in command register is 0b on boot time, but in case of kdump, this bit may be 1b. It causes problems of some drivers. At leaset I confirmed mptsas driver does not work in such a case. This patch fix this problem. Signed-off-by: Takao Indoh --- arch/x86/pci/common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c index 720e973..2bb7ecc 100644 --- a/arch/x86/pci/common.c +++ b/arch/x86/pci/common.c @@ -615,8 +615,10 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) if ((err = pci_enable_resources(dev, mask)) < 0) return err; - if (!pci_dev_msi_enabled(dev)) + if (!pci_dev_msi_enabled(dev)) { + pci_intx(dev, true); return pcibios_enable_irq(dev); + } return 0; }