diff options
-rw-r--r-- | arch/powerpc/kernel/pci_32.c | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/pci_64.c | 4 | ||||
-rw-r--r-- | drivers/pci/pci-sysfs.c | 10 | ||||
-rw-r--r-- | include/linux/pci.h | 2 |
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 */ |
1050 | void pcibios_add_platform_entries(struct pci_dev *pdev) | 1050 | int 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 | } |
877 | static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL); | 877 | static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL); |
878 | 878 | ||
879 | void pcibios_add_platform_entries(struct pci_dev *pdev) | 879 | int 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 | ||
603 | void __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev) | 603 | int __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev) |
604 | { | 604 | { |
605 | return; | 605 | return 0; |
606 | } | 606 | } |
607 | 607 | ||
608 | int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev) | 608 | int __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 | ||
653 | err_rom_file: | ||
654 | if (pci_resource_len(pdev, PCI_ROM_RESOURCE)) | ||
655 | sysfs_remove_bin_file(&pdev->dev.kobj, rom_attr); | ||
652 | err_rom: | 656 | err_rom: |
653 | kfree(rom_attr); | 657 | kfree(rom_attr); |
654 | err_resource_files: | 658 | err_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; | |||
881 | extern unsigned long pci_cardbus_io_size; | 881 | extern unsigned long pci_cardbus_io_size; |
882 | extern unsigned long pci_cardbus_mem_size; | 882 | extern unsigned long pci_cardbus_mem_size; |
883 | 883 | ||
884 | extern void pcibios_add_platform_entries(struct pci_dev *dev); | 884 | extern 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 */ |