From: Tony Krowiak <akrow...@linux.ibm.com>

Implements the VFIO_DEVICE_RESET ioctl. This ioctl zeroizes
all of the AP queues assigned to the guest.

Signed-off-by: Tony Krowiak <akrow...@linux.ibm.com>
---
 drivers/s390/crypto/vfio_ap_ops.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/drivers/s390/crypto/vfio_ap_ops.c 
b/drivers/s390/crypto/vfio_ap_ops.c
index e247491..4ff75c7 100644
--- a/drivers/s390/crypto/vfio_ap_ops.c
+++ b/drivers/s390/crypto/vfio_ap_ops.c
@@ -1161,7 +1161,7 @@ static int vfio_ap_mdev_get_device_info(unsigned long arg)
                return -EINVAL;
        }
 
-       info.flags = VFIO_DEVICE_FLAGS_AP;
+       info.flags = VFIO_DEVICE_FLAGS_AP | VFIO_DEVICE_FLAGS_RESET;
        info.num_regions = 0;
        info.num_irqs = 0;
 
@@ -1177,6 +1177,9 @@ static ssize_t vfio_ap_mdev_ioctl(struct mdev_device 
*mdev,
        case VFIO_DEVICE_GET_INFO:
                ret = vfio_ap_mdev_get_device_info(arg);
                break;
+       case VFIO_DEVICE_RESET:
+               ret = vfio_ap_mdev_reset_queues(mdev, true);
+               break;
        default:
                pr_err("%s: ioctl command %d is not a supported command",
                       VFIO_AP_MODULE_NAME, cmd);
-- 
1.7.1

Reply via email to