mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
PCI: fix section mismatch warning in pci_scan_child_bus
Fix following warning: WARNING: vmlinux.o(.text+0x47bdb1): Section mismatch in reference from the function pci_scan_child_bus() to the function .devinit.text:pcibios_fixup_bus() We had plenty of functions that could be annotated __devinit but due to the former restriction that exported symbols could not be annotated they were not so. So annotate these function and fix the references from the pci/hotplug/* code to silence the resuting warnings. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
415b6d0e89
commit
0ab2b57f8d
@ -4,7 +4,7 @@
|
|||||||
#include "pci.h"
|
#include "pci.h"
|
||||||
|
|
||||||
|
|
||||||
unsigned int pci_do_scan_bus(struct pci_bus *bus)
|
unsigned int __devinit pci_do_scan_bus(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
unsigned int max;
|
unsigned int max;
|
||||||
|
|
||||||
|
@ -1085,7 +1085,7 @@ static int acpiphp_bus_trim(acpi_handle handle)
|
|||||||
* This function should be called per *physical slot*,
|
* This function should be called per *physical slot*,
|
||||||
* not per each slot object in ACPI namespace.
|
* not per each slot object in ACPI namespace.
|
||||||
*/
|
*/
|
||||||
static int enable_device(struct acpiphp_slot *slot)
|
static int __ref enable_device(struct acpiphp_slot *slot)
|
||||||
{
|
{
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
struct pci_bus *bus = slot->bridge->pci_bus;
|
struct pci_bus *bus = slot->bridge->pci_bus;
|
||||||
|
@ -250,7 +250,7 @@ int cpci_led_off(struct slot* slot)
|
|||||||
* Device configuration functions
|
* Device configuration functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int cpci_configure_slot(struct slot* slot)
|
int __ref cpci_configure_slot(struct slot *slot)
|
||||||
{
|
{
|
||||||
struct pci_bus *parent;
|
struct pci_bus *parent;
|
||||||
int fn;
|
int fn;
|
||||||
|
@ -167,7 +167,7 @@ static void program_fw_provided_values(struct pci_dev *dev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pciehp_add_bridge(struct pci_dev *dev)
|
static int __ref pciehp_add_bridge(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
struct pci_bus *parent = dev->bus;
|
struct pci_bus *parent = dev->bus;
|
||||||
int pass, busnr, start = parent->secondary;
|
int pass, busnr, start = parent->secondary;
|
||||||
|
@ -96,7 +96,7 @@ static void program_fw_provided_values(struct pci_dev *dev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int shpchp_configure_device(struct slot *p_slot)
|
int __ref shpchp_configure_device(struct slot *p_slot)
|
||||||
{
|
{
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
struct pci_bus *parent = p_slot->ctrl->pci_dev->subordinate;
|
struct pci_bus *parent = p_slot->ctrl->pci_dev->subordinate;
|
||||||
|
@ -286,7 +286,7 @@ static void pci_read_bases(struct pci_dev *dev, unsigned int howmany, int rom)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void pci_read_bridge_bases(struct pci_bus *child)
|
void __devinit pci_read_bridge_bases(struct pci_bus *child)
|
||||||
{
|
{
|
||||||
struct pci_dev *dev = child->self;
|
struct pci_dev *dev = child->self;
|
||||||
u8 io_base_lo, io_limit_lo;
|
u8 io_base_lo, io_limit_lo;
|
||||||
@ -472,7 +472,7 @@ static void pci_fixup_parent_subordinate_busnr(struct pci_bus *child, int max)
|
|||||||
* them, we proceed to assigning numbers to the remaining buses in
|
* them, we proceed to assigning numbers to the remaining buses in
|
||||||
* order to avoid overlaps between old and new bus numbers.
|
* order to avoid overlaps between old and new bus numbers.
|
||||||
*/
|
*/
|
||||||
int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass)
|
int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, int pass)
|
||||||
{
|
{
|
||||||
struct pci_bus *child;
|
struct pci_bus *child;
|
||||||
int is_cardbus = (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS);
|
int is_cardbus = (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS);
|
||||||
@ -1008,7 +1008,7 @@ int pci_scan_slot(struct pci_bus *bus, int devfn)
|
|||||||
return nr;
|
return nr;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int pci_scan_child_bus(struct pci_bus *bus)
|
unsigned int __devinit pci_scan_child_bus(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
unsigned int devfn, pass, max = bus->secondary;
|
unsigned int devfn, pass, max = bus->secondary;
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
@ -1116,7 +1116,7 @@ err_out:
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct pci_bus *pci_scan_bus_parented(struct device *parent,
|
struct pci_bus * __devinit pci_scan_bus_parented(struct device *parent,
|
||||||
int bus, struct pci_ops *ops, void *sysdata)
|
int bus, struct pci_ops *ops, void *sysdata)
|
||||||
{
|
{
|
||||||
struct pci_bus *b;
|
struct pci_bus *b;
|
||||||
|
Loading…
Reference in New Issue
Block a user