Re: [parisc-linux] [PATCH 2/2] Make pcibios_add_platform_entries() return errors
James Bottomley <[email protected]>
| Newsgroups | gmane.linux.ports.mips.general,gmane.linux.ports.ia64,gmane.linux.ports.x86-64.general,gmane.linux.ports.ppc64.devel,gmane.linux.ports.sparc,gmane.linux.ports.hppa |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 2007-03-06 at 16:06 +0100, Michael Ellerman wrote: > int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev) > @@ -644,10 +644,13 @@ 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_attr; > > return 0; > > +err_rom_attr: > + sysfs_remove_bin_file(&pdev->dev.kobj, rom_attr); This file is only created if the rom resource has a non-zero length. If you unconditionally call sysfs_remove_bin_file() it's going to spit scary warnings and dump traces in this error leg if the rom resource doesn't exist. James > err_rom: > kfree(rom_attr); > err_bin_file: > Index: msi-new/include/linux/pci.h > =================================================================== > --- msi-new.orig/include/linux/pci.h > +++ msi-new/include/linux/pci.h > @@ -857,7 +857,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 */ > _______________________________________________ > parisc-linux mailing list > [email protected] > http://lists.parisc-linux.org/mailman/listinfo/parisc-linux