/* Note that it also must deal with devices that don't exist. In this case it may probe for real hardware ("just in case") and add a device_node to the device tree if necessary.  */
struct device_node* fetch_dev_dn(struct pci_dev *dev)
/* Note that it also must deal with devices that don't exist. In this case it may probe for real hardware ("just in case") and add a device_node to the device tree if necessary.  */
struct device_node* fetch_dev_dn(struct pci_dev *dev)
{
	struct device_node *orig_dn = dev->sysdata;
	struct device_node *dn;
	unsigned long searchval = (dev->bus->number << 8) | dev->devfn;
	dn = traverse_pci_devices(orig_dn, is_devfn_node, (void *)searchval);
	if (dn)
		dev->sysdata = dn;
	return dn;
}