cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

init.c (1158B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include <linux/pci.h>
      3#include <linux/init.h>
      4#include <asm/pci_x86.h>
      5#include <asm/x86_init.h>
      6#include <asm/irqdomain.h>
      7
      8/* arch_initcall has too random ordering, so call the initializers
      9   in the right sequence from here. */
     10static __init int pci_arch_init(void)
     11{
     12	int type, pcbios = 1;
     13
     14	type = pci_direct_probe();
     15
     16	if (!(pci_probe & PCI_PROBE_NOEARLY))
     17		pci_mmcfg_early_init();
     18
     19	if (x86_init.pci.arch_init)
     20		pcbios = x86_init.pci.arch_init();
     21
     22	/*
     23	 * Must happen after x86_init.pci.arch_init(). Xen sets up the
     24	 * x86_init.irqs.create_pci_msi_domain there.
     25	 */
     26	x86_create_pci_msi_domain();
     27
     28	if (!pcbios)
     29		return 0;
     30
     31	pci_pcbios_init();
     32
     33	/*
     34	 * don't check for raw_pci_ops here because we want pcbios as last
     35	 * fallback, yet it's needed to run first to set pcibios_last_bus
     36	 * in case legacy PCI probing is used. otherwise detecting peer busses
     37	 * fails.
     38	 */
     39	pci_direct_init(type);
     40
     41	if (!raw_pci_ops && !raw_pci_ext_ops)
     42		printk(KERN_ERR
     43		"PCI: Fatal: No config space access function found\n");
     44
     45	dmi_check_pciprobe();
     46
     47	dmi_check_skip_isa_align();
     48
     49	return 0;
     50}
     51arch_initcall(pci_arch_init);