Just happened to see a change in fakephp when searching usage of the pci_remove_bus_device(). I couldn't find the original patches, but this http://git.kernel.org/?p=linux/kernel/git/jbarnes/pci-2.6.git;a=commitdiff;h=fe99740cac117f208707488c03f3789cf4904957 shows, the pci_remove_bus_device() was removed while the remove_slot() was added in disable_slot(), which means: 1) fakephp can't remove pci_dev anymore; 2) deadlock happens because remove_slot() tries to remove the sysfs entry calling itself. On Saturday, August 30, 2008 2:21 PM, Zhao, Yu wrote: >It's been so for a while, guess since 2.5. I meant to say the >pci_remove_bus_device(), not pci_remove_bus(), is used by pci hotplug code. If >a device is being plugged off, and some drivers are calling pci_get_dev_by_id() >to search something, then the warning might be fired through bus_find_device >-> klist_iter_init_node ->kref_get. > >Thanks, >Yu > >>-----Original Message----- >>From: linux-pci-owner@xxxxxxxxxxxxxxx >>[mailto:linux-pci-owner@xxxxxxxxxxxxxxx] On Behalf Of Greg KH >>Sent: Saturday, August 30, 2008 1:38 PM >>To: Zhao, Yu >>Cc: Alex Chiang; Matthew Wilcox; linux-pci@xxxxxxxxxxxxxxx; >>linux-kernel@xxxxxxxxxxxxxxx >>Subject: Re: refcount leak in pci_get_device()? >> >>On Sat, Aug 30, 2008 at 12:23:20PM +0800, Zhao, Yu wrote: >>> And the pci_get_dev_by_id() is not safe again the PCI device removal. >>> It might fire a warning in bus_find_device() when reference count of >>> the knode_bus is decreased to 0 by pci_remove_bus(). >> >>Is this something new? Hasn't this always been that way? Why would you >>be wanting to call this function anyway? >> >>thanks, >> >>greg k-h >>-- >>To unsubscribe from this list: send the line "unsubscribe linux-pci" in >>the body of a message to majordomo@xxxxxxxxxxxxxxx >>More majordomo info at http://vger.kernel.org/majordomo-info.html >-- >To unsubscribe from this list: send the line "unsubscribe linux-pci" in >the body of a message to majordomo@xxxxxxxxxxxxxxx >More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html