Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PCI: Use a weak symbol for the empty version of pcibios_add_platform_entries()

I'm not sure if this is going to fly, weak symbols work on the compilers I'm
using, but whether they work for all of the affected architectures I can't say.
I've cc'ed as many arch maintainers/lists as I could find.

But assuming they do, we can use a weak empty definition of
pcibios_add_platform_entries() to avoid having an empty definition on every
arch.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


authored by

Michael Ellerman and committed by
Greg Kroah-Hartman
575e3348 d556ad4b

+7 -83
-6
arch/ppc/kernel/pci.c
··· 633 633 { 634 634 } 635 635 636 - /* Add sysfs properties */ 637 - void pcibios_add_platform_entries(struct pci_dev *pdev) 638 - { 639 - } 640 - 641 - 642 636 static int __init 643 637 pcibios_init(void) 644 638 {
+5
drivers/pci/pci-sysfs.c
··· 600 600 .write = pci_write_config, 601 601 }; 602 602 603 + void __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev) 604 + { 605 + return; 606 + } 607 + 603 608 int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev) 604 609 { 605 610 struct bin_attribute *rom_attr = NULL;
-5
include/asm-alpha/pci.h
··· 275 275 return hose->need_domain_info; 276 276 } 277 277 278 - static inline void 279 - pcibios_add_platform_entries(struct pci_dev *dev) 280 - { 281 - } 282 - 283 278 struct pci_dev *alpha_gendev_to_pci(struct device *dev); 284 279 285 280 #endif /* __KERNEL__ */
-4
include/asm-arm/pci.h
··· 76 76 return root; 77 77 } 78 78 79 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 80 - { 81 - } 82 - 83 79 #endif /* __KERNEL__ */ 84 80 85 81 #endif
-4
include/asm-cris/pci.h
··· 89 89 enum pci_mmap_state mmap_state, int write_combine); 90 90 91 91 92 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 93 - { 94 - } 95 - 96 92 #endif /* __KERNEL__ */ 97 93 98 94 /* implement the pci_ DMA API in terms of the generic device dma_ one */
-4
include/asm-frv/pci.h
··· 22 22 23 23 #define pcibios_assign_all_busses() 0 24 24 25 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 26 - { 27 - } 28 - 29 25 extern void pcibios_set_master(struct pci_dev *dev); 30 26 31 27 extern void pcibios_penalize_isa_irq(int irq);
-4
include/asm-h8300/pci.h
··· 22 22 23 23 #define PCI_DMA_BUS_IS_PHYS (1) 24 24 25 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 26 - { 27 - } 28 - 29 25 #endif /* _ASM_H8300_PCI_H */
-4
include/asm-i386/pci.h
··· 94 94 enum pci_mmap_state mmap_state, int write_combine); 95 95 96 96 97 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 98 - { 99 - } 100 - 101 97 #ifdef CONFIG_PCI 102 98 static inline void pci_dma_burst_advice(struct pci_dev *pdev, 103 99 enum pci_dma_burst_strategy *strat,
-4
include/asm-ia64/pci.h
··· 143 143 return (pci_domain_nr(bus) != 0); 144 144 } 145 145 146 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 147 - { 148 - } 149 - 150 146 extern void pcibios_resource_to_bus(struct pci_dev *dev, 151 147 struct pci_bus_region *region, struct resource *res); 152 148
-4
include/asm-m68k/pci.h
··· 54 54 */ 55 55 #define PCI_DMA_BUS_IS_PHYS (1) 56 56 57 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 58 - { 59 - } 60 - 61 57 #endif /* _ASM_M68K_PCI_H */
-4
include/asm-m68knommu/pci.h
··· 30 30 */ 31 31 #define pci_dac_dma_supported(pci_dev, mask) (0) 32 32 33 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 34 - { 35 - } 36 - 37 33 #endif /* CONFIG_COMEMPCI */ 38 34 39 35 #endif /* M68KNOMMU_PCI_H */
-4
include/asm-mips/pci.h
··· 181 181 /* implement the pci_ DMA API in terms of the generic device dma_ one */ 182 182 #include <asm-generic/pci-dma-compat.h> 183 183 184 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 185 - { 186 - } 187 - 188 184 /* Do platform specific device initialization at pci_enable_device() time */ 189 185 extern int pcibios_plat_dev_init(struct pci_dev *dev); 190 186
-4
include/asm-parisc/pci.h
··· 284 284 return root; 285 285 } 286 286 287 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 288 - { 289 - } 290 - 291 287 static inline void pcibios_penalize_isa_irq(int irq, int active) 292 288 { 293 289 /* We don't need to penalize isa irq's */
-2
include/asm-powerpc/pci.h
··· 243 243 244 244 extern int pci_read_irq_line(struct pci_dev *dev); 245 245 246 - extern void pcibios_add_platform_entries(struct pci_dev *dev); 247 - 248 246 struct file; 249 247 extern pgprot_t pci_phys_mem_access_prot(struct file *file, 250 248 unsigned long pfn,
-2
include/asm-ppc/pci.h
··· 145 145 return root; 146 146 } 147 147 148 - extern void pcibios_add_platform_entries(struct pci_dev *dev); 149 - 150 148 struct file; 151 149 extern pgprot_t pci_phys_mem_access_prot(struct file *file, 152 150 unsigned long pfn,
-4
include/asm-sh/pci.h
··· 134 134 int pciauto_assign_resources(int busno, struct pci_channel *hose); 135 135 #endif 136 136 137 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 138 - { 139 - } 140 - 141 137 #endif /* __KERNEL__ */ 142 138 143 139 /* generic pci stuff */
-4
include/asm-sh64/pci.h
··· 104 104 extern int pciauto_assign_resources(int busno, struct pci_channel *hose); 105 105 #endif 106 106 107 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 108 - { 109 - } 110 - 111 107 #endif /* __KERNEL__ */ 112 108 113 109 /* generic pci stuff */
-4
include/asm-sparc/pci.h
··· 154 154 } 155 155 #endif 156 156 157 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 158 - { 159 - } 160 - 161 157 #define PCI_DMA_ERROR_CODE (~(dma_addr_t)0x0) 162 158 163 159 static inline int pci_dma_mapping_error(dma_addr_t dma_addr)
-4
include/asm-sparc64/pci.h
··· 303 303 304 304 extern struct resource *pcibios_select_root(struct pci_dev *, struct resource *); 305 305 306 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 307 - { 308 - } 309 - 310 306 static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) 311 307 { 312 308 return PCI_IRQ_NONE;
-4
include/asm-v850/pci.h
··· 116 116 extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max); 117 117 extern void pci_iounmap (struct pci_dev *dev, void __iomem *addr); 118 118 119 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 120 - { 121 - } 122 - 123 119 #endif /* __V850_PCI_H__ */
-4
include/asm-x86_64/pci.h
··· 135 135 extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 136 136 enum pci_mmap_state mmap_state, int write_combine); 137 137 138 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 139 - { 140 - } 141 - 142 138 #endif /* __KERNEL__ */ 143 139 144 140 /* generic pci stuff */
-4
include/asm-xtensa/pci.h
··· 74 74 /* Tell drivers/pci/proc.c that we have pci_mmap_page_range() */ 75 75 #define HAVE_PCI_MMAP 1 76 76 77 - static inline void pcibios_add_platform_entries(struct pci_dev *dev) 78 - { 79 - } 80 - 81 77 #endif /* __KERNEL__ */ 82 78 83 79 /* Implement the pci_ DMA API in terms of the generic device dma_ one */
+2
include/linux/pci.h
··· 881 881 extern unsigned long pci_cardbus_io_size; 882 882 extern unsigned long pci_cardbus_mem_size; 883 883 884 + extern void pcibios_add_platform_entries(struct pci_dev *dev); 885 + 884 886 #endif /* __KERNEL__ */ 885 887 #endif /* LINUX_PCI_H */