[PATCH V8 0/9] vfio, platform: add ACPI support

Auger Eric eric.auger at redhat.com
Thu Jun 23 00:58:38 PDT 2016


Hi Sinan,

On 20/06/2016 17:51, Sinan Kaya wrote:
> The current code only supports the device tree based platforms.
> The code checks for the presence of a reset driver and calls the reset
> function pointer by looking up the reset driver as a module.
> 
> ACPI defines _RST method to perform device level reset. After the _RST
> method is executed, the OS can resume using the device.
> 
> The patchset is moving the device tree specific pieces out of the code
> to common functions so that ACPI support is added without impacting the
> rest of the code.
> 
> During probe, the ACPI HID of the object will be saved and will be used to
> determine if this is an ACPI capable platform or not. If acpihid is NULL
> then, device tree functions are called.
> 
> In addition to plumbing ACPI support, reset functionality is now 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 AMBA and platform
> VFIO drivers with a default value of true.
> 
> 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.
> 
> Changes from V7:
> 1. Move the reset function test before IOMMU group set up so that we can
> clean up properly when reset function is not found.
> 2. Correct the _RST function call. _RST method does not return any value.
> We were calling acpi_evaluate_integer. The correct API needs to be
> acpi_evaluate_object.
> 
> Sinan Kaya (9):
>   vfio: platform: rename reset function
>   vfio: platform: move reset call to a common function
>   vfio: platform: determine reset capability
>   vfio: platform: add support for ACPI probe
>   vfio: platform: add extra debug info argument to call reset
>   vfio: platform: call _RST method when using ACPI
>   vfio, platform: make reset driver a requirement by default
>   vfio: platform: check reset call return code during open
>   vfio: platform: check reset call return code during release
> 
>  drivers/vfio/platform/vfio_amba.c             |   5 +
>  drivers/vfio/platform/vfio_platform.c         |   5 +
>  drivers/vfio/platform/vfio_platform_common.c  | 197 +++++++++++++++++++++-----
>  drivers/vfio/platform/vfio_platform_private.h |   8 +-
>  4 files changed, 177 insertions(+), 38 deletions(-)
> 
I tested with device tree and I did not find any issue:
Tested-by: Eric Auger <eric.auger at redhat.com>

For the whole series:
Reviewed-by: Eric Auger <eric.auger at redhat.com>

Please note this will collide with "[PATCH V3] vfio: platform: support
No-IOMMU mode" (s/iommu_group_put/vfio_iommu_group_put)

Best Regards

Eric




More information about the linux-arm-kernel mailing list