lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170627205952.GC764@bhelgaas-glaptop.roam.corp.google.com>
Date:   Tue, 27 Jun 2017 15:59:53 -0500
From:   Bjorn Helgaas <helgaas@...nel.org>
To:     Thomas Gleixner <tglx@...utronix.de>
Cc:     LKML <linux-kernel@...r.kernel.org>, x86@...nel.org,
        Peter Anvin <hpa@...or.com>, Borislav Petkov <bp@...en8.de>,
        Peter Zijlstra <peterz@...radead.org>,
        Stephane Eranian <eranian@...gle.com>,
        Andi Kleen <ak@...ux.intel.com>, linux-pci@...r.kernel.org
Subject: Re: [patch 2/7] x86/pci: Abort if legacy init fails

[+cc linux-pci]

s|x86/pci: |x86/PCI: | for these three, to follow previous convention.

On Thu, Mar 16, 2017 at 10:50:04PM +0100, Thomas Gleixner wrote:
> 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.

s/pci/PCI/ above.

> Return right away, if the last init fallback fails.
> 
> Switch the few printks to pr_info while at it.
> 
> Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
> ---
>  arch/x86/pci/legacy.c |   18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> --- a/arch/x86/pci/legacy.c
> +++ b/arch/x86/pci/legacy.c
> @@ -24,12 +24,10 @@ static void pcibios_fixup_peer_bridges(v
>  
>  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();
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ