[parisc-linux] [PATCH 2/2] Make pcibios_add_platform_entries() return errors
James Bottomley
James.Bottomley at SteelEye.com
Wed Mar 7 05:05:01 EST 2007
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
> parisc-linux at lists.parisc-linux.org
> http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
More information about the Linuxppc-dev
mailing list