summaryrefslogtreecommitdiff
path: root/drivers/vfio/platform/vfio_amba.c
diff options
context:
space:
mode:
authorSinan Kaya <okaya@codeaurora.org>2016-07-19 16:01:47 +0300
committerAlex Williamson <alex.williamson@redhat.com>2016-07-19 19:26:46 +0300
commitb5add544d677d36386c3559cf5db1485b59c4d7d (patch)
treea0e8a1f56b2fbdb9fdef04bbd14857e792b3cde7 /drivers/vfio/platform/vfio_amba.c
parentd30daa33ec1d035acfdfc7662d7a5360592af44c (diff)
downloadlinux-b5add544d677d36386c3559cf5db1485b59c4d7d.tar.xz
vfio, platform: make reset driver a requirement by default
The code was allowing platform devices to be used without a supporting VFIO reset driver. The hardware can be left in some inconsistent state after a guest machine abort. The reset driver will put the hardware back to safe state and disable interrupts before returning the control back to the host machine. Adding a new reset_required kernel module option to platform VFIO drivers. The default value is true for the DT and ACPI based drivers. The reset requirement value for AMBA drivers is set to false and is unchangeable to maintain the existing functionality. New requirements are: 1. A reset function needs to be implemented by the corresponding driver via DT/ACPI. 2. The reset function needs to be discovered via DT/ACPI. The probe of the driver will fail if any of the above conditions are not satisfied. Signed-off-by: Sinan Kaya <okaya@codeaurora.org> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'drivers/vfio/platform/vfio_amba.c')
-rw-r--r--drivers/vfio/platform/vfio_amba.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/vfio/platform/vfio_amba.c b/drivers/vfio/platform/vfio_amba.c
index a66479bd0edf..31372fbf6c5b 100644
--- a/drivers/vfio/platform/vfio_amba.c
+++ b/drivers/vfio/platform/vfio_amba.c
@@ -68,6 +68,7 @@ static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id)
vdev->get_resource = get_amba_resource;
vdev->get_irq = get_amba_irq;
vdev->parent_module = THIS_MODULE;
+ vdev->reset_required = false;
ret = vfio_platform_probe_common(vdev, &adev->dev);
if (ret) {