Lines Matching refs:virtfn

122 	struct pci_dev *virtfn;  in virtfn_add()  local
132 virtfn = pci_alloc_dev(bus); in virtfn_add()
133 if (!virtfn) in virtfn_add()
136 virtfn->devfn = pci_iov_virtfn_devfn(dev, id); in virtfn_add()
137 virtfn->vendor = dev->vendor; in virtfn_add()
138 pci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_DID, &virtfn->device); in virtfn_add()
139 pci_setup_device(virtfn); in virtfn_add()
140 virtfn->dev.parent = dev->dev.parent; in virtfn_add()
141 virtfn->physfn = pci_dev_get(dev); in virtfn_add()
142 virtfn->is_virtfn = 1; in virtfn_add()
143 virtfn->multifunction = 0; in virtfn_add()
149 virtfn->resource[i].name = pci_name(virtfn); in virtfn_add()
150 virtfn->resource[i].flags = res->flags; in virtfn_add()
152 virtfn->resource[i].start = res->start + size * id; in virtfn_add()
153 virtfn->resource[i].end = virtfn->resource[i].start + size - 1; in virtfn_add()
154 rc = request_resource(res, &virtfn->resource[i]); in virtfn_add()
159 __pci_reset_function(virtfn); in virtfn_add()
161 pci_device_add(virtfn, virtfn->bus); in virtfn_add()
164 pci_bus_add_device(virtfn); in virtfn_add()
166 rc = sysfs_create_link(&dev->dev.kobj, &virtfn->dev.kobj, buf); in virtfn_add()
169 rc = sysfs_create_link(&virtfn->dev.kobj, &dev->dev.kobj, "physfn"); in virtfn_add()
173 kobject_uevent(&virtfn->dev.kobj, KOBJ_CHANGE); in virtfn_add()
182 pci_stop_and_remove_bus_device(virtfn); in virtfn_add()
194 struct pci_dev *virtfn; in virtfn_remove() local
197 virtfn = pci_get_domain_bus_and_slot(pci_domain_nr(dev->bus), in virtfn_remove()
200 if (!virtfn) in virtfn_remove()
204 device_release_driver(&virtfn->dev); in virtfn_remove()
205 __pci_reset_function(virtfn); in virtfn_remove()
215 if (virtfn->dev.kobj.sd) in virtfn_remove()
216 sysfs_remove_link(&virtfn->dev.kobj, "physfn"); in virtfn_remove()
219 pci_stop_and_remove_bus_device(virtfn); in virtfn_remove()
220 virtfn_remove_bus(dev->bus, virtfn->bus); in virtfn_remove()
224 pci_dev_put(virtfn); in virtfn_remove()