* [PATCH 1/2] Use a weak symbol for the empty version of pcibios_add_platform_entries()
@ 2007-05-08 2:03 Michael Ellerman
2007-05-08 2:03 ` [PATCH 2/2] Make pcibios_add_platform_entries() return errors Michael Ellerman
2007-05-17 4:56 ` [PATCH 1/2] Use a weak symbol for the empty version of pcibios_add_platform_entries() Michael Ellerman
0 siblings, 2 replies; 3+ messages in thread
From: Michael Ellerman @ 2007-05-08 2:03 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: linux-pci, linux-arch
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>
---
arch/ppc/kernel/pci.c | 6 ------
drivers/pci/pci-sysfs.c | 5 +++++
include/asm-alpha/pci.h | 5 -----
include/asm-arm/pci.h | 4 ----
include/asm-cris/pci.h | 4 ----
include/asm-frv/pci.h | 4 ----
include/asm-h8300/pci.h | 4 ----
include/asm-i386/pci.h | 4 ----
include/asm-ia64/pci.h | 4 ----
include/asm-m68k/pci.h | 4 ----
include/asm-m68knommu/pci.h | 4 ----
include/asm-mips/pci.h | 4 ----
include/asm-parisc/pci.h | 4 ----
include/asm-powerpc/pci.h | 2 --
include/asm-ppc/pci.h | 2 --
include/asm-sh/pci.h | 4 ----
include/asm-sh64/pci.h | 4 ----
include/asm-sparc/pci.h | 4 ----
include/asm-sparc64/pci.h | 4 ----
include/asm-v850/pci.h | 4 ----
include/asm-x86_64/pci.h | 4 ----
include/asm-xtensa/pci.h | 4 ----
include/linux/pci.h | 2 ++
23 files changed, 7 insertions(+), 83 deletions(-)
Index: powerpc/arch/ppc/kernel/pci.c
===================================================================
--- powerpc.orig/arch/ppc/kernel/pci.c
+++ powerpc/arch/ppc/kernel/pci.c
@@ -633,12 +633,6 @@ void pcibios_make_OF_bus_map(void)
{
}
-/* Add sysfs properties */
-void pcibios_add_platform_entries(struct pci_dev *pdev)
-{
-}
-
-
static int __init
pcibios_init(void)
{
Index: powerpc/drivers/pci/pci-sysfs.c
===================================================================
--- powerpc.orig/drivers/pci/pci-sysfs.c
+++ powerpc/drivers/pci/pci-sysfs.c
@@ -600,6 +600,11 @@ static struct bin_attribute pcie_config_
.write = pci_write_config,
};
+void __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev)
+{
+ return;
+}
+
int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
{
struct bin_attribute *rom_attr = NULL;
Index: powerpc/include/asm-alpha/pci.h
===================================================================
--- powerpc.orig/include/asm-alpha/pci.h
+++ powerpc/include/asm-alpha/pci.h
@@ -275,11 +275,6 @@ static inline int pci_proc_domain(struct
return hose->need_domain_info;
}
-static inline void
-pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
struct pci_dev *alpha_gendev_to_pci(struct device *dev);
#endif /* __KERNEL__ */
Index: powerpc/include/asm-arm/pci.h
===================================================================
--- powerpc.orig/include/asm-arm/pci.h
+++ powerpc/include/asm-arm/pci.h
@@ -76,10 +76,6 @@ pcibios_select_root(struct pci_dev *pdev
return root;
}
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* __KERNEL__ */
#endif
Index: powerpc/include/asm-cris/pci.h
===================================================================
--- powerpc.orig/include/asm-cris/pci.h
+++ powerpc/include/asm-cris/pci.h
@@ -89,10 +89,6 @@ extern int pci_mmap_page_range(struct pc
enum pci_mmap_state mmap_state, int write_combine);
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* __KERNEL__ */
/* implement the pci_ DMA API in terms of the generic device dma_ one */
Index: powerpc/include/asm-frv/pci.h
===================================================================
--- powerpc.orig/include/asm-frv/pci.h
+++ powerpc/include/asm-frv/pci.h
@@ -22,10 +22,6 @@ struct pci_dev;
#define pcibios_assign_all_busses() 0
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
extern void pcibios_set_master(struct pci_dev *dev);
extern void pcibios_penalize_isa_irq(int irq);
Index: powerpc/include/asm-h8300/pci.h
===================================================================
--- powerpc.orig/include/asm-h8300/pci.h
+++ powerpc/include/asm-h8300/pci.h
@@ -22,8 +22,4 @@ static inline void pcibios_penalize_isa_
#define PCI_DMA_BUS_IS_PHYS (1)
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* _ASM_H8300_PCI_H */
Index: powerpc/include/asm-i386/pci.h
===================================================================
--- powerpc.orig/include/asm-i386/pci.h
+++ powerpc/include/asm-i386/pci.h
@@ -94,10 +94,6 @@ extern int pci_mmap_page_range(struct pc
enum pci_mmap_state mmap_state, int write_combine);
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#ifdef CONFIG_PCI
static inline void pci_dma_burst_advice(struct pci_dev *pdev,
enum pci_dma_burst_strategy *strat,
Index: powerpc/include/asm-ia64/pci.h
===================================================================
--- powerpc.orig/include/asm-ia64/pci.h
+++ powerpc/include/asm-ia64/pci.h
@@ -143,10 +143,6 @@ static inline int pci_proc_domain(struct
return (pci_domain_nr(bus) != 0);
}
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
extern void pcibios_resource_to_bus(struct pci_dev *dev,
struct pci_bus_region *region, struct resource *res);
Index: powerpc/include/asm-m68k/pci.h
===================================================================
--- powerpc.orig/include/asm-m68k/pci.h
+++ powerpc/include/asm-m68k/pci.h
@@ -54,8 +54,4 @@ static inline void pcibios_penalize_isa_
*/
#define PCI_DMA_BUS_IS_PHYS (1)
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* _ASM_M68K_PCI_H */
Index: powerpc/include/asm-m68knommu/pci.h
===================================================================
--- powerpc.orig/include/asm-m68knommu/pci.h
+++ powerpc/include/asm-m68knommu/pci.h
@@ -30,10 +30,6 @@ static inline int pci_dma_supported(stru
*/
#define pci_dac_dma_supported(pci_dev, mask) (0)
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* CONFIG_COMEMPCI */
#endif /* M68KNOMMU_PCI_H */
Index: powerpc/include/asm-mips/pci.h
===================================================================
--- powerpc.orig/include/asm-mips/pci.h
+++ powerpc/include/asm-mips/pci.h
@@ -181,10 +181,6 @@ static inline int pci_proc_domain(struct
/* implement the pci_ DMA API in terms of the generic device dma_ one */
#include <asm-generic/pci-dma-compat.h>
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
/* Do platform specific device initialization at pci_enable_device() time */
extern int pcibios_plat_dev_init(struct pci_dev *dev);
Index: powerpc/include/asm-parisc/pci.h
===================================================================
--- powerpc.orig/include/asm-parisc/pci.h
+++ powerpc/include/asm-parisc/pci.h
@@ -284,10 +284,6 @@ pcibios_select_root(struct pci_dev *pdev
return root;
}
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
static inline void pcibios_penalize_isa_irq(int irq, int active)
{
/* We don't need to penalize isa irq's */
Index: powerpc/include/asm-powerpc/pci.h
===================================================================
--- powerpc.orig/include/asm-powerpc/pci.h
+++ powerpc/include/asm-powerpc/pci.h
@@ -243,8 +243,6 @@ extern void of_scan_bus(struct device_no
extern int pci_read_irq_line(struct pci_dev *dev);
-extern void pcibios_add_platform_entries(struct pci_dev *dev);
-
struct file;
extern pgprot_t pci_phys_mem_access_prot(struct file *file,
unsigned long pfn,
Index: powerpc/include/asm-ppc/pci.h
===================================================================
--- powerpc.orig/include/asm-ppc/pci.h
+++ powerpc/include/asm-ppc/pci.h
@@ -145,8 +145,6 @@ pcibios_select_root(struct pci_dev *pdev
return root;
}
-extern void pcibios_add_platform_entries(struct pci_dev *dev);
-
struct file;
extern pgprot_t pci_phys_mem_access_prot(struct file *file,
unsigned long pfn,
Index: powerpc/include/asm-sh/pci.h
===================================================================
--- powerpc.orig/include/asm-sh/pci.h
+++ powerpc/include/asm-sh/pci.h
@@ -134,10 +134,6 @@ int pcibios_map_platform_irq(struct pci_
int pciauto_assign_resources(int busno, struct pci_channel *hose);
#endif
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* __KERNEL__ */
/* generic pci stuff */
Index: powerpc/include/asm-sh64/pci.h
===================================================================
--- powerpc.orig/include/asm-sh64/pci.h
+++ powerpc/include/asm-sh64/pci.h
@@ -104,10 +104,6 @@ extern void pcibios_fixup_irqs(void);
extern int pciauto_assign_resources(int busno, struct pci_channel *hose);
#endif
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* __KERNEL__ */
/* generic pci stuff */
Index: powerpc/include/asm-sparc/pci.h
===================================================================
--- powerpc.orig/include/asm-sparc/pci.h
+++ powerpc/include/asm-sparc/pci.h
@@ -154,10 +154,6 @@ static inline void pci_dma_burst_advice(
}
#endif
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#define PCI_DMA_ERROR_CODE (~(dma_addr_t)0x0)
static inline int pci_dma_mapping_error(dma_addr_t dma_addr)
Index: powerpc/include/asm-sparc64/pci.h
===================================================================
--- powerpc.orig/include/asm-sparc64/pci.h
+++ powerpc/include/asm-sparc64/pci.h
@@ -303,10 +303,6 @@ pcibios_bus_to_resource(struct pci_dev *
extern struct resource *pcibios_select_root(struct pci_dev *, struct resource *);
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
{
return PCI_IRQ_NONE;
Index: powerpc/include/asm-v850/pci.h
===================================================================
--- powerpc.orig/include/asm-v850/pci.h
+++ powerpc/include/asm-v850/pci.h
@@ -116,8 +116,4 @@ static inline void pci_dma_burst_advice(
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap (struct pci_dev *dev, void __iomem *addr);
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* __V850_PCI_H__ */
Index: powerpc/include/asm-x86_64/pci.h
===================================================================
--- powerpc.orig/include/asm-x86_64/pci.h
+++ powerpc/include/asm-x86_64/pci.h
@@ -135,10 +135,6 @@ static inline void pci_dma_burst_advice(
extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
enum pci_mmap_state mmap_state, int write_combine);
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* __KERNEL__ */
/* generic pci stuff */
Index: powerpc/include/asm-xtensa/pci.h
===================================================================
--- powerpc.orig/include/asm-xtensa/pci.h
+++ powerpc/include/asm-xtensa/pci.h
@@ -74,10 +74,6 @@ int pci_mmap_page_range(struct pci_dev *
/* Tell drivers/pci/proc.c that we have pci_mmap_page_range() */
#define HAVE_PCI_MMAP 1
-static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-{
-}
-
#endif /* __KERNEL__ */
/* Implement the pci_ DMA API in terms of the generic device dma_ one */
Index: powerpc/include/linux/pci.h
===================================================================
--- powerpc.orig/include/linux/pci.h
+++ powerpc/include/linux/pci.h
@@ -852,5 +852,7 @@ extern int pci_pci_problems;
extern unsigned long pci_cardbus_io_size;
extern unsigned long pci_cardbus_mem_size;
+extern void pcibios_add_platform_entries(struct pci_dev *dev);
+
#endif /* __KERNEL__ */
#endif /* LINUX_PCI_H */
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/2] Make pcibios_add_platform_entries() return errors
2007-05-08 2:03 [PATCH 1/2] Use a weak symbol for the empty version of pcibios_add_platform_entries() Michael Ellerman
@ 2007-05-08 2:03 ` Michael Ellerman
2007-05-17 4:56 ` [PATCH 1/2] Use a weak symbol for the empty version of pcibios_add_platform_entries() Michael Ellerman
1 sibling, 0 replies; 3+ messages in thread
From: Michael Ellerman @ 2007-05-08 2:03 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: linux-pci, linux-arch
Currently pcibios_add_platform_entries() returns void, but could fail,
so instead have it return an int and propagate errors up to
pci_create_sysfs_dev_files().
Fixes:
arch/powerpc/kernel/pci_64.c: In function 'pcibios_add_platform_entries':
arch/powerpc/kernel/pci_64.c:878: warning: ignoring return value of
'device_create_file', declared with attribute warn_unused_result
arch/powerpc/kernel/pci_32.c: In function 'pcibios_add_platform_entries':
arch/powerpc/kernel/pci_32.c:1043: warning: ignoring return value of
'device_create_file', declared with attribute warn_unused_result
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
arch/powerpc/kernel/pci_32.c | 4 ++--
arch/powerpc/kernel/pci_64.c | 4 ++--
drivers/pci/pci-sysfs.c | 10 +++++++---
include/linux/pci.h | 2 +-
4 files changed, 12 insertions(+), 8 deletions(-)
Index: powerpc/arch/powerpc/kernel/pci_32.c
===================================================================
--- powerpc.orig/arch/powerpc/kernel/pci_32.c
+++ powerpc/arch/powerpc/kernel/pci_32.c
@@ -1047,10 +1047,10 @@ void pcibios_make_OF_bus_map(void)
#endif /* CONFIG_PPC_OF */
/* Add sysfs properties */
-void pcibios_add_platform_entries(struct pci_dev *pdev)
+int pcibios_add_platform_entries(struct pci_dev *pdev)
{
#ifdef CONFIG_PPC_OF
- device_create_file(&pdev->dev, &dev_attr_devspec);
+ return device_create_file(&pdev->dev, &dev_attr_devspec);
#endif /* CONFIG_PPC_OF */
}
Index: powerpc/arch/powerpc/kernel/pci_64.c
===================================================================
--- powerpc.orig/arch/powerpc/kernel/pci_64.c
+++ powerpc/arch/powerpc/kernel/pci_64.c
@@ -873,9 +873,9 @@ static ssize_t pci_show_devspec(struct d
}
static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL);
-void pcibios_add_platform_entries(struct pci_dev *pdev)
+int pcibios_add_platform_entries(struct pci_dev *pdev)
{
- device_create_file(&pdev->dev, &dev_attr_devspec);
+ return device_create_file(&pdev->dev, &dev_attr_devspec);
}
#define ISA_SPACE_MASK 0x1
Index: powerpc/drivers/pci/pci-sysfs.c
===================================================================
--- powerpc.orig/drivers/pci/pci-sysfs.c
+++ powerpc/drivers/pci/pci-sysfs.c
@@ -600,9 +600,9 @@ static struct bin_attribute pcie_config_
.write = pci_write_config,
};
-void __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev)
+int __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev)
{
- return;
+ return 0;
}
int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
@@ -644,10 +644,14 @@ int __must_check pci_create_sysfs_dev_fi
}
}
/* add platform-specific attributes */
- pcibios_add_platform_entries(pdev);
+ if (pcibios_add_platform_entries(pdev))
+ goto err_rom_file;
return 0;
+err_rom_file:
+ if (pci_resource_len(pdev, PCI_ROM_RESOURCE))
+ sysfs_remove_bin_file(&pdev->dev.kobj, rom_attr);
err_rom:
kfree(rom_attr);
err_bin_file:
Index: powerpc/include/linux/pci.h
===================================================================
--- powerpc.orig/include/linux/pci.h
+++ powerpc/include/linux/pci.h
@@ -852,7 +852,7 @@ extern int pci_pci_problems;
extern unsigned long pci_cardbus_io_size;
extern unsigned long pci_cardbus_mem_size;
-extern void pcibios_add_platform_entries(struct pci_dev *dev);
+extern int pcibios_add_platform_entries(struct pci_dev *dev);
#endif /* __KERNEL__ */
#endif /* LINUX_PCI_H */
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] Use a weak symbol for the empty version of pcibios_add_platform_entries()
2007-05-08 2:03 [PATCH 1/2] Use a weak symbol for the empty version of pcibios_add_platform_entries() Michael Ellerman
2007-05-08 2:03 ` [PATCH 2/2] Make pcibios_add_platform_entries() return errors Michael Ellerman
@ 2007-05-17 4:56 ` Michael Ellerman
1 sibling, 0 replies; 3+ messages in thread
From: Michael Ellerman @ 2007-05-17 4:56 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: linux-pci, linux-arch
[-- Attachment #1: Type: text/plain, Size: 537 bytes --]
On Tue, 2007-05-08 at 12:03 +1000, Michael Ellerman wrote:
> Use a weak empty definition of pcibios_add_platform_entries() to avoid having
> an empty definition on every arch.
Hi Greg,
I don't see this one in your tree yet. Let me know if you want me to
resend etc.
cheers
--
Michael Ellerman
OzLabs, IBM Australia Development Lab
wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)
We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-05-17 4:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-08 2:03 [PATCH 1/2] Use a weak symbol for the empty version of pcibios_add_platform_entries() Michael Ellerman
2007-05-08 2:03 ` [PATCH 2/2] Make pcibios_add_platform_entries() return errors Michael Ellerman
2007-05-17 4:56 ` [PATCH 1/2] Use a weak symbol for the empty version of pcibios_add_platform_entries() Michael Ellerman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox