aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2007-05-07 22:03:08 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-07-11 19:02:07 -0400
commita2cd52ca904f5913651e71764755e712894ccc2f (patch)
treeea852daa5f2217a9caf1485ec6fffac5412ac7c7
parent575e3348cb80c3265278756778d5091d5ca4efbf (diff)
PCI: Make pcibios_add_platform_entries() return errors
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> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--arch/powerpc/kernel/pci_32.c4
-rw-r--r--arch/powerpc/kernel/pci_64.c4
-rw-r--r--drivers/pci/pci-sysfs.c10
-rw-r--r--include/linux/pci.h2
4 files changed, 12 insertions, 8 deletions
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index e66064b5093a..86982112b0dd 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -1047,10 +1047,10 @@ void pcibios_make_OF_bus_map(void)
1047#endif /* CONFIG_PPC_OF */ 1047#endif /* CONFIG_PPC_OF */
1048 1048
1049/* Add sysfs properties */ 1049/* Add sysfs properties */
1050void pcibios_add_platform_entries(struct pci_dev *pdev) 1050int pcibios_add_platform_entries(struct pci_dev *pdev)
1051{ 1051{
1052#ifdef CONFIG_PPC_OF 1052#ifdef CONFIG_PPC_OF
1053 device_create_file(&pdev->dev, &dev_attr_devspec); 1053 return device_create_file(&pdev->dev, &dev_attr_devspec);
1054#endif /* CONFIG_PPC_OF */ 1054#endif /* CONFIG_PPC_OF */
1055} 1055}
1056 1056
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 249cca27a9b8..96d393c2da02 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -876,9 +876,9 @@ static ssize_t pci_show_devspec(struct device *dev,
876} 876}
877static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL); 877static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL);
878 878
879void pcibios_add_platform_entries(struct pci_dev *pdev) 879int pcibios_add_platform_entries(struct pci_dev *pdev)
880{ 880{
881 device_create_file(&pdev->dev, &dev_attr_devspec); 881 return device_create_file(&pdev->dev, &dev_attr_devspec);
882} 882}
883 883
884#define ISA_SPACE_MASK 0x1 884#define ISA_SPACE_MASK 0x1
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index e5737f0b3997..9c4a123eacd1 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -600,9 +600,9 @@ static struct bin_attribute pcie_config_attr = {
600 .write = pci_write_config, 600 .write = pci_write_config,
601}; 601};
602 602
603void __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev) 603int __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev)
604{ 604{
605 return; 605 return 0;
606} 606}
607 607
608int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev) 608int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
@@ -645,10 +645,14 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
645 } 645 }
646 } 646 }
647 /* add platform-specific attributes */ 647 /* add platform-specific attributes */
648 pcibios_add_platform_entries(pdev); 648 if (pcibios_add_platform_entries(pdev))
649 goto err_rom_file;
649 650
650 return 0; 651 return 0;
651 652
653err_rom_file:
654 if (pci_resource_len(pdev, PCI_ROM_RESOURCE))
655 sysfs_remove_bin_file(&pdev->dev.kobj, rom_attr);
652err_rom: 656err_rom:
653 kfree(rom_attr); 657 kfree(rom_attr);
654err_resource_files: 658err_resource_files:
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 18319aba1a57..483db814770e 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -881,7 +881,7 @@ extern int pci_pci_problems;
881extern unsigned long pci_cardbus_io_size; 881extern unsigned long pci_cardbus_io_size;
882extern unsigned long pci_cardbus_mem_size; 882extern unsigned long pci_cardbus_mem_size;
883 883
884extern void pcibios_add_platform_entries(struct pci_dev *dev); 884extern int pcibios_add_platform_entries(struct pci_dev *dev);
885 885
886#endif /* __KERNEL__ */ 886#endif /* __KERNEL__ */
887#endif /* LINUX_PCI_H */ 887#endif /* LINUX_PCI_H */