mirror of https://gitee.com/openkylin/linux.git
vfio: platform: add dev_info on device reset
It might be helpful for the end-user to check the device reset function was found by the vfio platform reset framework. Lets store a pointer to the struct device in vfio_platform_device and trace when the reset function is called or not found. Signed-off-by: Eric Auger <eric.auger@linaro.org> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
e9e0506ee6
commit
705e60bae3
|
@ -144,8 +144,12 @@ static void vfio_platform_release(void *device_data)
|
|||
mutex_lock(&driver_lock);
|
||||
|
||||
if (!(--vdev->refcnt)) {
|
||||
if (vdev->reset)
|
||||
if (vdev->reset) {
|
||||
dev_info(vdev->device, "reset\n");
|
||||
vdev->reset(vdev);
|
||||
} else {
|
||||
dev_warn(vdev->device, "no reset function found!\n");
|
||||
}
|
||||
vfio_platform_regions_cleanup(vdev);
|
||||
vfio_platform_irq_cleanup(vdev);
|
||||
}
|
||||
|
@ -174,8 +178,12 @@ static int vfio_platform_open(void *device_data)
|
|||
if (ret)
|
||||
goto err_irq;
|
||||
|
||||
if (vdev->reset)
|
||||
if (vdev->reset) {
|
||||
dev_info(vdev->device, "reset\n");
|
||||
vdev->reset(vdev);
|
||||
} else {
|
||||
dev_warn(vdev->device, "no reset function found!\n");
|
||||
}
|
||||
}
|
||||
|
||||
vdev->refcnt++;
|
||||
|
@ -551,6 +559,8 @@ int vfio_platform_probe_common(struct vfio_platform_device *vdev,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
vdev->device = dev;
|
||||
|
||||
group = iommu_group_get(dev);
|
||||
if (!group) {
|
||||
pr_err("VFIO: No IOMMU group for device %s\n", vdev->name);
|
||||
|
|
|
@ -59,6 +59,7 @@ struct vfio_platform_device {
|
|||
struct module *parent_module;
|
||||
const char *compat;
|
||||
struct module *reset_module;
|
||||
struct device *device;
|
||||
|
||||
/*
|
||||
* These fields should be filled by the bus specific binder
|
||||
|
|
Loading…
Reference in New Issue