diff options
Diffstat (limited to 'drivers/pci/pci-sysfs.c')
-rw-r--r-- | drivers/pci/pci-sysfs.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 6543cbe83be5..10dbdec80416 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c | |||
@@ -603,6 +603,11 @@ static struct bin_attribute pcie_config_attr = { | |||
603 | .write = pci_write_config, | 603 | .write = pci_write_config, |
604 | }; | 604 | }; |
605 | 605 | ||
606 | int __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev) | ||
607 | { | ||
608 | return 0; | ||
609 | } | ||
610 | |||
606 | int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev) | 611 | int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev) |
607 | { | 612 | { |
608 | struct bin_attribute *rom_attr = NULL; | 613 | struct bin_attribute *rom_attr = NULL; |
@@ -642,10 +647,14 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev) | |||
642 | } | 647 | } |
643 | } | 648 | } |
644 | /* add platform-specific attributes */ | 649 | /* add platform-specific attributes */ |
645 | pcibios_add_platform_entries(pdev); | 650 | if (pcibios_add_platform_entries(pdev)) |
651 | goto err_rom_file; | ||
646 | 652 | ||
647 | return 0; | 653 | return 0; |
648 | 654 | ||
655 | err_rom_file: | ||
656 | if (pci_resource_len(pdev, PCI_ROM_RESOURCE)) | ||
657 | sysfs_remove_bin_file(&pdev->dev.kobj, rom_attr); | ||
649 | err_rom: | 658 | err_rom: |
650 | kfree(rom_attr); | 659 | kfree(rom_attr); |
651 | err_resource_files: | 660 | err_resource_files: |