From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751928AbdF1Usg (ORCPT ); Wed, 28 Jun 2017 16:48:36 -0400 Received: from terminus.zytor.com ([65.50.211.136]:43047 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751544AbdF1Usf (ORCPT ); Wed, 28 Jun 2017 16:48:35 -0400 Date: Wed, 28 Jun 2017 13:44:00 -0700 From: tip-bot for Thomas Gleixner Message-ID: Cc: tglx@linutronix.de, helgaas@kernel.org, eranian@google.com, mingo@kernel.org, linux-kernel@vger.kernel.org, peterz@infradead.org, bp@alien8.de, hpa@zytor.com, ak@linux.intel.com Reply-To: linux-kernel@vger.kernel.org, bp@alien8.de, peterz@infradead.org, mingo@kernel.org, tglx@linutronix.de, helgaas@kernel.org, eranian@google.com, ak@linux.intel.com, hpa@zytor.com In-Reply-To: <20170316215057.047576516@linutronix.de> References: <20170316215057.047576516@linutronix.de> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/platform] x86/PCI: Abort if legacy init fails Git-Commit-ID: aae3e318d012e76211f34bb65754f3d4d2a8c93d X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: aae3e318d012e76211f34bb65754f3d4d2a8c93d Gitweb: http://git.kernel.org/tip/aae3e318d012e76211f34bb65754f3d4d2a8c93d Author: Thomas Gleixner AuthorDate: Thu, 16 Mar 2017 22:50:04 +0100 Committer: Thomas Gleixner CommitDate: Wed, 28 Jun 2017 22:32:55 +0200 x86/PCI: Abort if legacy init fails If the legacy PCI init fails, then there are no PCI config space accesors available, but the code continues and tries to scan the busses, which fails due to the lack of config space accessors. Return right away, if the last init fallback fails. Switch the few printks to pr_info while at it. Signed-off-by: Thomas Gleixner Acked-by: Bjorn Helgaas Cc: Andi Kleen Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Borislav Petkov Cc: linux-pci@vger.kernel.org Link: http://lkml.kernel.org/r/20170316215057.047576516@linutronix.de Signed-off-by: Thomas Gleixner --- arch/x86/pci/legacy.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/arch/x86/pci/legacy.c b/arch/x86/pci/legacy.c index ea6f380..1cb01ab 100644 --- a/arch/x86/pci/legacy.c +++ b/arch/x86/pci/legacy.c @@ -24,12 +24,10 @@ static void pcibios_fixup_peer_bridges(void) int __init pci_legacy_init(void) { - if (!raw_pci_ops) { - printk("PCI: System does not support PCI\n"); - return 0; - } + if (!raw_pci_ops) + return 1; - printk("PCI: Probing PCI hardware\n"); + pr_info("PCI: Probing PCI hardware\n"); pcibios_scan_root(0); return 0; } @@ -46,7 +44,7 @@ void pcibios_scan_specific_bus(int busn) if (!raw_pci_read(0, busn, devfn, PCI_VENDOR_ID, 2, &l) && l != 0x0000 && l != 0xffff) { DBG("Found device at %02x:%02x [%04x]\n", busn, devfn, l); - printk(KERN_INFO "PCI: Discovered peer bus %02x\n", busn); + pr_info("PCI: Discovered peer bus %02x\n", busn); pcibios_scan_root(busn); return; } @@ -60,8 +58,12 @@ static int __init pci_subsys_init(void) * The init function returns an non zero value when * pci_legacy_init should be invoked. */ - if (x86_init.pci.init()) - pci_legacy_init(); + if (x86_init.pci.init()) { + if (pci_legacy_init()) { + pr_info("PCI: System does not support PCI\n"); + return -ENODEV; + } + } pcibios_fixup_peer_bridges(); x86_init.pci.init_irq();