Skip to content

Commit

Permalink
vfio: platform: add dev_info on device reset
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Eric Auger authored and Alex Williamson committed Nov 3, 2015
1 parent e9e0506 commit 705e60b
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
14 changes: 12 additions & 2 deletions drivers/vfio/platform/vfio_platform_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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++;
Expand Down Expand Up @@ -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);
Expand Down
1 change: 1 addition & 0 deletions drivers/vfio/platform/vfio_platform_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 705e60b

Please sign in to comment.