[PATCH] x86/pci: Clean up the asm/pci_x86.h header a bit

From: Ingo Molnar
Date: Mon Dec 03 2018 - 03:49:51 EST



* Ingo Molnar <mingo@xxxxxxxxxx> wrote:

> From 22b71f970f18f5f38161be028ab7ce7cd1f769f7 Mon Sep 17 00:00:00 2001
> From: Ingo Molnar <mingo@xxxxxxxxxx>
> Date: Mon, 3 Dec 2018 09:15:40 +0100
> Subject: [PATCH] x86/pci: Remove the dead-code DBG() macro
>
> While reading arch/x86/include/asm/pci_x86.h I noticed that we have ancient
> residuals of debugging code, which is never actually enabled via any regular
> Kconfig mechanism:

I also noticed that the PCI_CHECK_ENABLE_AMD_MMCONF line added eons ago
looked weird, so did a quick cleanup pass of the header.

Thanks,

Ingo

================>
From: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Mon, 3 Dec 2018 09:42:40 +0100
Subject: [PATCH] x86/pci: Clean up the asm/pci_x86.h header a bit

- The addition of PCI_CHECK_ENABLE_AMD_MMCONF broke the tabulation of the
enumeration - fix the tabulation and also extend it with zeroes to make
it clearer how the bits relate, and to make it easier to check that
there's no accidental overlap.

- Remove unnecessary and out of date comments referring to file names that
do not exist with that name anymore.

- Fix non-standard comment lines.

- Add 'extern' to global scope variables/functions that don't have it.

- Fix typo.

- Tabulate 'struct pci_mmcfg_region', similarly to the other structure
definitions in this header.

- Move the x86_default_pci_* definitions closer to their usage site
in arch/x86/kernel/x86_init.c, they are not used anywhere else,
so it's unnecessary to include it in 30+ .c files.

No change to functionality intended.

Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
---
arch/x86/include/asm/pci_x86.h | 101 +++++++++++++++--------------------------
arch/x86/kernel/x86_init.c | 14 ++++++
2 files changed, 51 insertions(+), 64 deletions(-)

diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index 3f8d9c75b9ee..3448f24282c7 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
@@ -7,26 +7,26 @@

#include <linux/ioport.h>

-#define PCI_PROBE_BIOS 0x0001
-#define PCI_PROBE_CONF1 0x0002
-#define PCI_PROBE_CONF2 0x0004
-#define PCI_PROBE_MMCONF 0x0008
-#define PCI_PROBE_MASK 0x000f
-#define PCI_PROBE_NOEARLY 0x0010
-
-#define PCI_NO_CHECKS 0x0400
-#define PCI_USE_PIRQ_MASK 0x0800
-#define PCI_ASSIGN_ROMS 0x1000
-#define PCI_BIOS_IRQ_SCAN 0x2000
-#define PCI_ASSIGN_ALL_BUSSES 0x4000
-#define PCI_CAN_SKIP_ISA_ALIGN 0x8000
-#define PCI_USE__CRS 0x10000
-#define PCI_CHECK_ENABLE_AMD_MMCONF 0x20000
-#define PCI_HAS_IO_ECS 0x40000
-#define PCI_NOASSIGN_ROMS 0x80000
-#define PCI_ROOT_NO_CRS 0x100000
-#define PCI_NOASSIGN_BARS 0x200000
-#define PCI_BIG_ROOT_WINDOW 0x400000
+#define PCI_PROBE_BIOS 0x000001
+#define PCI_PROBE_CONF1 0x000002
+#define PCI_PROBE_CONF2 0x000004
+#define PCI_PROBE_MMCONF 0x000008
+#define PCI_PROBE_MASK 0x00000f
+#define PCI_PROBE_NOEARLY 0x000010
+
+#define PCI_NO_CHECKS 0x000400
+#define PCI_USE_PIRQ_MASK 0x000800
+#define PCI_ASSIGN_ROMS 0x001000
+#define PCI_BIOS_IRQ_SCAN 0x002000
+#define PCI_ASSIGN_ALL_BUSSES 0x004000
+#define PCI_CAN_SKIP_ISA_ALIGN 0x008000
+#define PCI_USE__CRS 0x010000
+#define PCI_CHECK_ENABLE_AMD_MMCONF 0x020000
+#define PCI_HAS_IO_ECS 0x040000
+#define PCI_NOASSIGN_ROMS 0x080000
+#define PCI_ROOT_NO_CRS 0x100000
+#define PCI_NOASSIGN_BARS 0x200000
+#define PCI_BIG_ROOT_WINDOW 0x400000

extern unsigned int pci_probe;
extern unsigned long pirq_table_addr;
@@ -38,28 +38,19 @@ enum pci_bf_sort_state {
pci_dmi_bf,
};

-/* pci-i386.c */
-
-void pcibios_resource_survey(void);
-void pcibios_set_cache_line_size(void);
-
-/* pci-pc.c */
-
+extern void pcibios_resource_survey(void);
+extern void pcibios_set_cache_line_size(void);
extern int pcibios_last_bus;
extern struct pci_ops pci_root_ops;
-
-void pcibios_scan_specific_bus(int busn);
-
-/* pci-irq.c */
+extern void pcibios_scan_specific_bus(int busn);

struct irq_info {
u8 bus, devfn; /* Bus, device and function */
struct {
- u8 link; /* IRQ line ID, chipset dependent,
- 0 = not routed */
+ u8 link; /* IRQ line ID, chipset dependent, 0 = not routed */
u16 bitmap; /* Available IRQs */
- } __attribute__((packed)) irq[4];
- u8 slot; /* Slot number, 0=onboard */
+ } __packed irq[4];
+ u8 slot; /* Slot number, 0 = onboard */
u8 rfu;
} __attribute__((packed));

@@ -68,10 +59,8 @@ struct irq_routing_table {
u16 version; /* PIRQ_VERSION */
u16 size; /* Table size in bytes */
u8 rtr_bus, rtr_devfn; /* Where the interrupt router lies */
- u16 exclusive_irqs; /* IRQs devoted exclusively to
- PCI usage */
- u16 rtr_vendor, rtr_device; /* Vendor and device ID of
- interrupt router */
+ u16 exclusive_irqs; /* IRQs devoted exclusively to PCI usage */
+ u16 rtr_vendor, rtr_device; /* Vendor and device ID of interrupt router */
u32 miniport_data; /* Crap */
u8 rfu[11];
u8 checksum; /* Modulo 256 checksum must give 0 */
@@ -108,27 +97,25 @@ extern void pci_pcbios_init(void);
extern void __init dmi_check_pciprobe(void);
extern void __init dmi_check_skip_isa_align(void);

-/* some common used subsys_initcalls */
+/* some commonly used subsys_initcalls */
extern int __init pci_acpi_init(void);
extern void __init pcibios_irq_init(void);
extern int __init pcibios_init(void);
extern int pci_legacy_init(void);
extern void pcibios_fixup_irqs(void);

-/* pci-mmconfig.c */
-
/* "PCI MMCONFIG %04x [bus %02x-%02x]" */
#define PCI_MMCFG_RESOURCE_NAME_LEN (22 + 4 + 2 + 2)

struct pci_mmcfg_region {
- struct list_head list;
- struct resource res;
- u64 address;
- char __iomem *virt;
- u16 segment;
- u8 start_bus;
- u8 end_bus;
- char name[PCI_MMCFG_RESOURCE_NAME_LEN];
+ struct list_head list;
+ struct resource res;
+ u64 address;
+ char __iomem *virt;
+ u16 segment;
+ u8 start_bus;
+ u8 end_bus;
+ char name[PCI_MMCFG_RESOURCE_NAME_LEN];
};

extern int __init pci_mmcfg_arch_init(void);
@@ -188,17 +175,3 @@ static inline void mmio_config_writel(void __iomem *pos, u32 val)
{
asm volatile("movl %%eax,(%1)" : : "a" (val), "r" (pos) : "memory");
}
-
-#ifdef CONFIG_PCI
-# ifdef CONFIG_ACPI
-# define x86_default_pci_init pci_acpi_init
-# else
-# define x86_default_pci_init pci_legacy_init
-# endif
-# define x86_default_pci_init_irq pcibios_irq_init
-# define x86_default_pci_fixup_irqs pcibios_fixup_irqs
-#else
-# define x86_default_pci_init NULL
-# define x86_default_pci_init_irq NULL
-# define x86_default_pci_fixup_irqs NULL
-#endif
diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
index 50a2b492fdd6..95f64345c416 100644
--- a/arch/x86/kernel/x86_init.c
+++ b/arch/x86/kernel/x86_init.c
@@ -32,6 +32,20 @@ static void iommu_shutdown_noop(void) { }
static bool __init bool_x86_init_noop(void) { return false; }
static void x86_op_int_noop(int cpu) { }

+#ifdef CONFIG_PCI
+# ifdef CONFIG_ACPI
+# define x86_default_pci_init pci_acpi_init
+# else
+# define x86_default_pci_init pci_legacy_init
+# endif
+# define x86_default_pci_init_irq pcibios_irq_init
+# define x86_default_pci_fixup_irqs pcibios_fixup_irqs
+#else
+# define x86_default_pci_init NULL
+# define x86_default_pci_init_irq NULL
+# define x86_default_pci_fixup_irqs NULL
+#endif
+
/*
* The platform setup functions are preset with the default functions
* for standard PC hardware.