Lines Matching refs:pds_vfio

22 static void pds_vfio_recovery(struct pds_vfio_pci_device *pds_vfio)  in pds_vfio_recovery()  argument
37 mutex_lock(&pds_vfio->state_mutex); in pds_vfio_recovery()
38 if ((pds_vfio->state != VFIO_DEVICE_STATE_RUNNING && in pds_vfio_recovery()
39 pds_vfio->state != VFIO_DEVICE_STATE_ERROR) || in pds_vfio_recovery()
40 (pds_vfio->state == VFIO_DEVICE_STATE_RUNNING && in pds_vfio_recovery()
41 pds_vfio_dirty_is_enabled(pds_vfio))) in pds_vfio_recovery()
42 pds_vfio_reset(pds_vfio, VFIO_DEVICE_STATE_ERROR); in pds_vfio_recovery()
43 mutex_unlock(&pds_vfio->state_mutex); in pds_vfio_recovery()
49 struct pds_vfio_pci_device *pds_vfio = in pds_vfio_pci_notify_handler() local
51 struct device *dev = pds_vfio_to_dev(pds_vfio); in pds_vfio_pci_notify_handler()
72 pds_vfio_recovery(pds_vfio); in pds_vfio_pci_notify_handler()
79 pds_vfio_pci_register_event_handler(struct pds_vfio_pci_device *pds_vfio) in pds_vfio_pci_register_event_handler() argument
81 struct device *dev = pds_vfio_to_dev(pds_vfio); in pds_vfio_pci_register_event_handler()
82 struct notifier_block *nb = &pds_vfio->nb; in pds_vfio_pci_register_event_handler()
102 pds_vfio_pci_unregister_event_handler(struct pds_vfio_pci_device *pds_vfio) in pds_vfio_pci_unregister_event_handler() argument
104 if (pds_vfio->nb.notifier_call) { in pds_vfio_pci_unregister_event_handler()
105 pdsc_unregister_notify(&pds_vfio->nb); in pds_vfio_pci_unregister_event_handler()
106 pds_vfio->nb.notifier_call = NULL; in pds_vfio_pci_unregister_event_handler()
113 struct pds_vfio_pci_device *pds_vfio; in pds_vfio_pci_probe() local
116 pds_vfio = vfio_alloc_device(pds_vfio_pci_device, vfio_coredev.vdev, in pds_vfio_pci_probe()
118 if (IS_ERR(pds_vfio)) in pds_vfio_pci_probe()
119 return PTR_ERR(pds_vfio); in pds_vfio_pci_probe()
121 dev_set_drvdata(&pdev->dev, &pds_vfio->vfio_coredev); in pds_vfio_pci_probe()
123 err = vfio_pci_core_register_device(&pds_vfio->vfio_coredev); in pds_vfio_pci_probe()
127 err = pds_vfio_register_client_cmd(pds_vfio); in pds_vfio_pci_probe()
134 err = pds_vfio_pci_register_event_handler(pds_vfio); in pds_vfio_pci_probe()
141 pds_vfio_unregister_client_cmd(pds_vfio); in pds_vfio_pci_probe()
143 vfio_pci_core_unregister_device(&pds_vfio->vfio_coredev); in pds_vfio_pci_probe()
145 vfio_put_device(&pds_vfio->vfio_coredev.vdev); in pds_vfio_pci_probe()
151 struct pds_vfio_pci_device *pds_vfio = pds_vfio_pci_drvdata(pdev); in pds_vfio_pci_remove() local
153 pds_vfio_pci_unregister_event_handler(pds_vfio); in pds_vfio_pci_remove()
154 pds_vfio_unregister_client_cmd(pds_vfio); in pds_vfio_pci_remove()
155 vfio_pci_core_unregister_device(&pds_vfio->vfio_coredev); in pds_vfio_pci_remove()
156 vfio_put_device(&pds_vfio->vfio_coredev.vdev); in pds_vfio_pci_remove()
167 struct pds_vfio_pci_device *pds_vfio = pds_vfio_pci_drvdata(pdev); in pds_vfio_pci_aer_reset_done() local
169 mutex_lock(&pds_vfio->state_mutex); in pds_vfio_pci_aer_reset_done()
170 pds_vfio_reset(pds_vfio, VFIO_DEVICE_STATE_RUNNING); in pds_vfio_pci_aer_reset_done()
171 mutex_unlock(&pds_vfio->state_mutex); in pds_vfio_pci_aer_reset_done()