Lines Matching defs:psdev

72 	struct pcistub_device *psdev;
76 psdev = kzalloc(sizeof(*psdev), GFP_KERNEL);
77 if (!psdev)
80 psdev->dev = pci_dev_get(dev);
81 if (!psdev->dev) {
82 kfree(psdev);
86 kref_init(&psdev->kref);
87 spin_lock_init(&psdev->lock);
89 return psdev;
95 struct pcistub_device *psdev;
99 psdev = container_of(kref, struct pcistub_device, kref);
100 dev = psdev->dev;
144 kfree(psdev);
147 static inline void pcistub_device_get(struct pcistub_device *psdev)
149 kref_get(&psdev->kref);
152 static inline void pcistub_device_put(struct pcistub_device *psdev)
154 kref_put(&psdev->kref, pcistub_device_release);
160 struct pcistub_device *psdev;
162 list_for_each_entry(psdev, &pcistub_devices, dev_list) {
163 if (psdev->dev != NULL
164 && domain == pci_domain_nr(psdev->dev->bus)
165 && bus == psdev->dev->bus->number
166 && slot == PCI_SLOT(psdev->dev->devfn)
167 && func == PCI_FUNC(psdev->dev->devfn)) {
168 return psdev;
178 struct pcistub_device *psdev;
183 psdev = pcistub_device_find_locked(domain, bus, slot, func);
184 if (psdev)
185 pcistub_device_get(psdev);
188 return psdev;
192 struct pcistub_device *psdev)
197 spin_lock_irqsave(&psdev->lock, flags);
198 if (!psdev->pdev) {
199 psdev->pdev = pdev;
200 pci_dev = psdev->dev;
202 spin_unlock_irqrestore(&psdev->lock, flags);
205 pcistub_device_get(psdev);
214 struct pcistub_device *psdev;
220 psdev = pcistub_device_find_locked(domain, bus, slot, func);
221 if (psdev)
222 found_dev = pcistub_device_get_pci_dev(pdev, psdev);
231 struct pcistub_device *psdev;
237 list_for_each_entry(psdev, &pcistub_devices, dev_list) {
238 if (psdev->dev == dev) {
239 found_dev = pcistub_device_get_pci_dev(pdev, psdev);
261 struct pcistub_device *psdev, *found_psdev = NULL;
268 list_for_each_entry(psdev, &pcistub_devices, dev_list) {
269 if (psdev->dev == dev) {
270 found_psdev = psdev;
367 * here and then to call kfree(pci_get_drvdata(psdev->dev)).
452 struct pcistub_device *psdev;
459 psdev = container_of(seized_devices.next,
461 list_del(&psdev->dev_list);
465 err = pcistub_init_device(psdev->dev);
467 dev_err(&psdev->dev->dev,
469 kfree(psdev);
470 psdev = NULL;
475 if (psdev)
476 list_add_tail(&psdev->dev_list, &pcistub_devices);
519 struct pcistub_device *psdev;
523 psdev = pcistub_device_alloc(dev);
524 if (!psdev) {
535 err = pcistub_init_device(psdev->dev);
540 list_add(&psdev->dev_list, &pcistub_devices);
543 list_add(&psdev->dev_list, &seized_devices);
550 pcistub_device_put(psdev);
604 struct pcistub_device *psdev, *found_psdev = NULL;
613 list_for_each_entry(psdev, &pcistub_devices, dev_list) {
614 if (psdev->dev == dev) {
615 found_psdev = psdev;
662 static void kill_domain_by_device(struct pcistub_device *psdev)
668 BUG_ON(!psdev);
670 psdev->pdev->xdev->otherend_id);
675 dev_err(&psdev->dev->dev,
685 dev_err(&psdev->dev->dev,
695 static pci_ers_result_t common_process(struct pcistub_device *psdev,
701 struct xen_pcibk_device *pdev = psdev->pdev;
711 ret = xen_pcibk_get_pcifront_dev(psdev->dev, psdev->pdev,
714 dev_err(&psdev->dev->dev, "failed to get pcifront device\n");
719 dev_dbg(&psdev->dev->dev, "aer_op %x dom %x bus %x devfn %x\n",
750 dev_err(&psdev->dev->dev,
773 struct pcistub_device *psdev;
781 psdev = pcistub_device_find(pci_domain_nr(dev->bus),
786 if (!psdev || !psdev->pdev) {
791 if (!psdev->pdev->sh_info) {
794 kill_domain_by_device(psdev);
799 (unsigned long *)&psdev->pdev->sh_info->flags)) {
804 result = common_process(psdev, pci_channel_io_normal, XEN_PCI_OP_aer_slotreset, result);
810 kill_domain_by_device(psdev);
813 if (psdev)
814 pcistub_device_put(psdev);
830 struct pcistub_device *psdev;
838 psdev = pcistub_device_find(pci_domain_nr(dev->bus),
843 if (!psdev || !psdev->pdev) {
848 if (!psdev->pdev->sh_info) {
851 kill_domain_by_device(psdev);
856 (unsigned long *)&psdev->pdev->sh_info->flags)) {
861 result = common_process(psdev, pci_channel_io_normal, XEN_PCI_OP_aer_mmio, result);
867 kill_domain_by_device(psdev);
870 if (psdev)
871 pcistub_device_put(psdev);
887 struct pcistub_device *psdev;
895 psdev = pcistub_device_find(pci_domain_nr(dev->bus),
900 if (!psdev || !psdev->pdev) {
905 if (!psdev->pdev->sh_info) {
908 kill_domain_by_device(psdev);
914 (unsigned long *)&psdev->pdev->sh_info->flags)) {
916 kill_domain_by_device(psdev);
919 result = common_process(psdev, error, XEN_PCI_OP_aer_detected, result);
925 kill_domain_by_device(psdev);
928 if (psdev)
929 pcistub_device_put(psdev);
942 struct pcistub_device *psdev;
948 psdev = pcistub_device_find(pci_domain_nr(dev->bus),
953 if (!psdev || !psdev->pdev) {
958 if (!psdev->pdev->sh_info) {
961 kill_domain_by_device(psdev);
966 (unsigned long *)&psdev->pdev->sh_info->flags)) {
969 kill_domain_by_device(psdev);
972 common_process(psdev, pci_channel_io_normal, XEN_PCI_OP_aer_resume,
975 if (psdev)
976 pcistub_device_put(psdev);
1135 struct pcistub_device *psdev;
1142 psdev = pcistub_device_find(domain, bus, slot, func);
1143 if (!psdev) {
1147 dev = psdev->dev;
1167 if (psdev)
1168 pcistub_device_put(psdev);
1235 struct pcistub_device *psdev;
1241 list_for_each_entry(psdev, &pcistub_devices, dev_list) {
1244 if (!psdev->dev)
1246 dev_data = pci_get_drvdata(psdev->dev);
1252 pci_name(psdev->dev),
1265 struct pcistub_device *psdev;
1274 psdev = pcistub_device_find(domain, bus, slot, func);
1275 if (!psdev) {
1280 dev_data = pci_get_drvdata(psdev->dev);
1286 dev_dbg(&psdev->dev->dev, "%s fake irq handler: %d->%d\n",
1294 if (psdev)
1295 pcistub_device_put(psdev);
1371 struct pcistub_device *psdev;
1378 psdev = pcistub_device_find(domain, bus, slot, func);
1379 if (!psdev) {
1384 dev_data = pci_get_drvdata(psdev->dev);
1393 dev_warn(&psdev->dev->dev, "enabling permissive mode "
1395 dev_warn(&psdev->dev->dev,
1399 pcistub_device_put(psdev);
1408 struct pcistub_device *psdev;
1413 list_for_each_entry(psdev, &pcistub_devices, dev_list) {
1416 if (!psdev->dev)
1418 dev_data = pci_get_drvdata(psdev->dev);
1423 pci_name(psdev->dev));
1435 struct pcistub_device *psdev;
1442 psdev = pcistub_device_find(domain, bus, slot, func);
1443 if (!psdev) {
1448 dev_data = pci_get_drvdata(psdev->dev);
1456 pcistub_device_put(psdev);
1466 struct pcistub_device *psdev;
1472 list_for_each_entry(psdev, &pcistub_devices, dev_list) {
1475 if (!psdev->dev)
1477 dev_data = pci_get_drvdata(psdev->dev);
1482 pci_name(psdev->dev));
1626 struct pcistub_device *psdev = NULL;
1631 list_for_each_entry(psdev, &pcistub_devices, dev_list) {
1632 if (!psdev->pdev && psdev->dev != pdev
1633 && pci_physfn(psdev->dev) == pdev) {
1640 return psdev;
1657 struct pcistub_device *psdev = find_vfs(pdev);
1658 if (!psdev)
1660 device_release_driver(&psdev->dev->dev);