Skip to content

Commit

Permalink
x86/pci: Reducde #ifdeffery in PCI init code
Browse files Browse the repository at this point in the history
Adding a function call before the first #ifdef in arch_pci_init() triggers
a 'mixed declarations and code' warning if PCI_DIRECT is enabled.

Use stub functions and move the #ifdeffery to the header file where it is
not in the way.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20200826112332.767707340@linutronix.de
  • Loading branch information
Thomas Gleixner committed Sep 16, 2020
1 parent bb733e4 commit 445d359
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
11 changes: 11 additions & 0 deletions arch/x86/include/asm/pci_x86.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,20 @@ extern const struct pci_raw_ops pci_direct_conf1;
extern bool port_cf9_safe;

/* arch_initcall level */
#ifdef CONFIG_PCI_DIRECT
extern int pci_direct_probe(void);
extern void pci_direct_init(int type);
#else
static inline int pci_direct_probe(void) { return -1; }
static inline void pci_direct_init(int type) { }
#endif

#ifdef CONFIG_PCI_BIOS
extern void pci_pcbios_init(void);
#else
static inline void pci_pcbios_init(void) { }
#endif

extern void __init dmi_check_pciprobe(void);
extern void __init dmi_check_skip_isa_align(void);

Expand Down
10 changes: 3 additions & 7 deletions arch/x86/pci/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,26 @@
in the right sequence from here. */
static __init int pci_arch_init(void)
{
#ifdef CONFIG_PCI_DIRECT
int type = 0;
int type;

type = pci_direct_probe();
#endif

if (!(pci_probe & PCI_PROBE_NOEARLY))
pci_mmcfg_early_init();

if (x86_init.pci.arch_init && !x86_init.pci.arch_init())
return 0;

#ifdef CONFIG_PCI_BIOS
pci_pcbios_init();
#endif

/*
* don't check for raw_pci_ops here because we want pcbios as last
* fallback, yet it's needed to run first to set pcibios_last_bus
* in case legacy PCI probing is used. otherwise detecting peer busses
* fails.
*/
#ifdef CONFIG_PCI_DIRECT
pci_direct_init(type);
#endif

if (!raw_pci_ops && !raw_pci_ext_ops)
printk(KERN_ERR
"PCI: Fatal: No config space access function found\n");
Expand Down

0 comments on commit 445d359

Please sign in to comment.