mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 13:51:44 +00:00
Merge branch 'topic/sebastian-devinit-fixups' into next
* topic/sebastian-devinit-fixups: scripts/modpost: check for bad references in .pci.fixups area sh/PCI: move fixup hooks from __init to __devinit powerpc/PCI: move fixup hooks from __init to __devinit frv/PCI: move fixup hooks from __init to __devinit arm/PCI: move fixup hooks from __init to __devinit alpha/PCI: move fixup hooks from __init to __devinit PCI: move fixup hooks from __init to __devinit x86/PCI: move fixup hooks from __init to __devinit
This commit is contained in:
commit
e822a00704
@ -59,15 +59,13 @@ struct pci_controller *pci_isa_hose;
|
||||
* Quirks.
|
||||
*/
|
||||
|
||||
static void __init
|
||||
quirk_isa_bridge(struct pci_dev *dev)
|
||||
static void __devinit quirk_isa_bridge(struct pci_dev *dev)
|
||||
{
|
||||
dev->class = PCI_CLASS_BRIDGE_ISA << 8;
|
||||
}
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82378, quirk_isa_bridge);
|
||||
|
||||
static void __init
|
||||
quirk_cypress(struct pci_dev *dev)
|
||||
static void __devinit quirk_cypress(struct pci_dev *dev)
|
||||
{
|
||||
/* The Notorious Cy82C693 chip. */
|
||||
|
||||
@ -106,8 +104,7 @@ quirk_cypress(struct pci_dev *dev)
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, quirk_cypress);
|
||||
|
||||
/* Called for each device after PCI setup is done. */
|
||||
static void __init
|
||||
pcibios_fixup_final(struct pci_dev *dev)
|
||||
static void __devinit pcibios_fixup_final(struct pci_dev *dev)
|
||||
{
|
||||
unsigned int class = dev->class >> 8;
|
||||
|
||||
|
@ -253,7 +253,7 @@ static void __devinit pci_fixup_cy82c693(struct pci_dev *dev)
|
||||
}
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693);
|
||||
|
||||
static void __init pci_fixup_it8152(struct pci_dev *dev)
|
||||
static void __devinit pci_fixup_it8152(struct pci_dev *dev)
|
||||
{
|
||||
int i;
|
||||
/* fixup for ITE 8152 devices */
|
||||
|
@ -268,7 +268,7 @@ static void __init pci_fixup_umc_ide(struct pci_dev *d)
|
||||
d->resource[i].flags |= PCI_BASE_ADDRESS_SPACE_IO;
|
||||
}
|
||||
|
||||
static void __init pci_fixup_ide_bases(struct pci_dev *d)
|
||||
static void __devinit pci_fixup_ide_bases(struct pci_dev *d)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -287,7 +287,7 @@ static void __init pci_fixup_ide_bases(struct pci_dev *d)
|
||||
}
|
||||
}
|
||||
|
||||
static void __init pci_fixup_ide_trash(struct pci_dev *d)
|
||||
static void __devinit pci_fixup_ide_trash(struct pci_dev *d)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -102,7 +102,7 @@ static void tqm85xx_show_cpuinfo(struct seq_file *m)
|
||||
seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
|
||||
}
|
||||
|
||||
static void __init tqm85xx_ti1520_fixup(struct pci_dev *pdev)
|
||||
static void __devinit tqm85xx_ti1520_fixup(struct pci_dev *pdev)
|
||||
{
|
||||
unsigned int val;
|
||||
|
||||
|
@ -164,7 +164,7 @@ static void gef_ppc9a_show_cpuinfo(struct seq_file *m)
|
||||
gef_ppc9a_get_vme_is_syscon() ? "yes" : "no");
|
||||
}
|
||||
|
||||
static void __init gef_ppc9a_nec_fixup(struct pci_dev *pdev)
|
||||
static void __devinit gef_ppc9a_nec_fixup(struct pci_dev *pdev)
|
||||
{
|
||||
unsigned int val;
|
||||
|
||||
|
@ -152,7 +152,7 @@ static void gef_sbc310_show_cpuinfo(struct seq_file *m)
|
||||
|
||||
}
|
||||
|
||||
static void __init gef_sbc310_nec_fixup(struct pci_dev *pdev)
|
||||
static void __devinit gef_sbc310_nec_fixup(struct pci_dev *pdev)
|
||||
{
|
||||
unsigned int val;
|
||||
|
||||
|
@ -141,7 +141,7 @@ static void gef_sbc610_show_cpuinfo(struct seq_file *m)
|
||||
seq_printf(m, "SVR\t\t: 0x%x\n", svid);
|
||||
}
|
||||
|
||||
static void __init gef_sbc610_nec_fixup(struct pci_dev *pdev)
|
||||
static void __devinit gef_sbc610_nec_fixup(struct pci_dev *pdev)
|
||||
{
|
||||
unsigned int val;
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
static int fsl_pcie_bus_fixup, is_mpc83xx_pci;
|
||||
|
||||
static void __init quirk_fsl_pcie_header(struct pci_dev *dev)
|
||||
static void __devinit quirk_fsl_pcie_header(struct pci_dev *dev)
|
||||
{
|
||||
u8 progif;
|
||||
|
||||
|
@ -104,7 +104,7 @@ subsys_initcall(mv64x60_sysfs_init);
|
||||
|
||||
#endif /* CONFIG_SYSFS */
|
||||
|
||||
static void __init mv64x60_pci_fixup_early(struct pci_dev *dev)
|
||||
static void __devinit mv64x60_pci_fixup_early(struct pci_dev *dev)
|
||||
{
|
||||
/*
|
||||
* Set the host bridge hdr_type to an invalid value so that
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include <asm/irq.h>
|
||||
#include <mach/pci.h>
|
||||
|
||||
static void __init gapspci_fixup_resources(struct pci_dev *dev)
|
||||
static void __devinit gapspci_fixup_resources(struct pci_dev *dev)
|
||||
{
|
||||
struct pci_channel *p = dev->sysdata;
|
||||
|
||||
|
@ -512,7 +512,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
|
||||
|
||||
#if defined(CONFIG_PCI) && defined(CONFIG_NUMA)
|
||||
/* Set correct numa_node information for AMD NB functions */
|
||||
static void __init quirk_amd_nb_node(struct pci_dev *dev)
|
||||
static void __devinit quirk_amd_nb_node(struct pci_dev *dev)
|
||||
{
|
||||
struct pci_dev *nb_ht;
|
||||
unsigned int devfn;
|
||||
|
@ -253,7 +253,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C576, quirk_vsfx)
|
||||
* workaround applied too
|
||||
* [Info kindly provided by ALi]
|
||||
*/
|
||||
static void __init quirk_alimagik(struct pci_dev *dev)
|
||||
static void __devinit quirk_alimagik(struct pci_dev *dev)
|
||||
{
|
||||
if ((pci_pci_problems&PCIPCI_ALIMAGIK)==0) {
|
||||
dev_info(&dev->dev, "Limiting direct PCI/PCI transfers\n");
|
||||
@ -789,7 +789,7 @@ static void __devinit quirk_amd_ioapic(struct pci_dev *dev)
|
||||
}
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_7410, quirk_amd_ioapic);
|
||||
|
||||
static void __init quirk_ioapic_rmw(struct pci_dev *dev)
|
||||
static void __devinit quirk_ioapic_rmw(struct pci_dev *dev)
|
||||
{
|
||||
if (dev->devfn == 0 && dev->bus->number == 0)
|
||||
sis_apic_bug = 1;
|
||||
@ -801,7 +801,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, PCI_ANY_ID, quirk_ioapic_rmw);
|
||||
* Some settings of MMRBC can lead to data corruption so block changes.
|
||||
* See AMD 8131 HyperTransport PCI-X Tunnel Revision Guide
|
||||
*/
|
||||
static void __init quirk_amd_8131_mmrbc(struct pci_dev *dev)
|
||||
static void __devinit quirk_amd_8131_mmrbc(struct pci_dev *dev)
|
||||
{
|
||||
if (dev->subordinate && dev->revision <= 0x12) {
|
||||
dev_info(&dev->dev, "AMD8131 rev %x detected; "
|
||||
@ -1082,7 +1082,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB
|
||||
/*
|
||||
* Intel 82801CAM ICH3-M datasheet says IDE modes must be the same
|
||||
*/
|
||||
static void __init quirk_ide_samemode(struct pci_dev *pdev)
|
||||
static void __devinit quirk_ide_samemode(struct pci_dev *pdev)
|
||||
{
|
||||
u8 prog;
|
||||
|
||||
@ -1121,7 +1121,7 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_VIA, PCI_ANY_ID,
|
||||
/* This was originally an Alpha specific thing, but it really fits here.
|
||||
* The i82375 PCI/EISA bridge appears as non-classified. Fix that.
|
||||
*/
|
||||
static void __init quirk_eisa_bridge(struct pci_dev *dev)
|
||||
static void __devinit quirk_eisa_bridge(struct pci_dev *dev)
|
||||
{
|
||||
dev->class = PCI_CLASS_BRIDGE_EISA << 8;
|
||||
}
|
||||
@ -1155,7 +1155,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82375, quirk_e
|
||||
*/
|
||||
static int asus_hides_smbus;
|
||||
|
||||
static void __init asus_hides_smbus_hostbridge(struct pci_dev *dev)
|
||||
static void __devinit asus_hides_smbus_hostbridge(struct pci_dev *dev)
|
||||
{
|
||||
if (unlikely(dev->subsystem_vendor == PCI_VENDOR_ID_ASUSTEK)) {
|
||||
if (dev->device == PCI_DEVICE_ID_INTEL_82845_HB)
|
||||
@ -1538,7 +1538,7 @@ DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB3
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_X86_IO_APIC
|
||||
static void __init quirk_alder_ioapic(struct pci_dev *pdev)
|
||||
static void __devinit quirk_alder_ioapic(struct pci_dev *pdev)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -1777,7 +1777,7 @@ DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8111_SMBUS, qui
|
||||
* but the PIO transfers won't work if BAR0 falls at the odd 8 bytes.
|
||||
* Re-allocate the region if needed...
|
||||
*/
|
||||
static void __init quirk_tc86c001_ide(struct pci_dev *dev)
|
||||
static void __devinit quirk_tc86c001_ide(struct pci_dev *dev)
|
||||
{
|
||||
struct resource *r = &dev->resource[0];
|
||||
|
||||
@ -2169,7 +2169,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_PLX, 0x8624, quirk_tile_plx_gen1);
|
||||
* aware of it. Instead of setting the flag on all busses in the
|
||||
* machine, simply disable MSI globally.
|
||||
*/
|
||||
static void __init quirk_disable_all_msi(struct pci_dev *dev)
|
||||
static void __devinit quirk_disable_all_msi(struct pci_dev *dev)
|
||||
{
|
||||
pci_no_msi();
|
||||
dev_warn(&dev->dev, "MSI quirk detected; MSI disabled\n");
|
||||
|
@ -865,6 +865,11 @@ static void check_section(const char *modname, struct elf_info *elf,
|
||||
#define ALL_EXIT_TEXT_SECTIONS \
|
||||
".exit.text$", ".devexit.text$", ".cpuexit.text$", ".memexit.text$"
|
||||
|
||||
#define ALL_PCI_INIT_SECTIONS \
|
||||
".pci_fixup_early$", ".pci_fixup_header$", ".pci_fixup_final$", \
|
||||
".pci_fixup_enable$", ".pci_fixup_resume$", \
|
||||
".pci_fixup_resume_early$", ".pci_fixup_suspend$"
|
||||
|
||||
#define ALL_XXXINIT_SECTIONS DEV_INIT_SECTIONS, CPU_INIT_SECTIONS, \
|
||||
MEM_INIT_SECTIONS
|
||||
#define ALL_XXXEXIT_SECTIONS DEV_EXIT_SECTIONS, CPU_EXIT_SECTIONS, \
|
||||
@ -1027,6 +1032,12 @@ const struct sectioncheck sectioncheck[] = {
|
||||
.mismatch = ANY_EXIT_TO_ANY_INIT,
|
||||
.symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL },
|
||||
},
|
||||
{
|
||||
.fromsec = { ALL_PCI_INIT_SECTIONS, NULL },
|
||||
.tosec = { INIT_SECTIONS, NULL },
|
||||
.mismatch = ANY_INIT_TO_ANY_EXIT,
|
||||
.symbol_white_list = { NULL },
|
||||
},
|
||||
/* Do not export init/exit functions or data */
|
||||
{
|
||||
.fromsec = { "__ksymtab*", NULL },
|
||||
|
Loading…
Reference in New Issue
Block a user