On Mon, 13 Aug 2018 17:48:15 -0400 Tony Krowiak <akrowiak@xxxxxxxxxxxxxxxxxx> wrote: > From: Tony Krowiak <akrowiak@xxxxxxxxxxxxx> > > Implements the VFIO_DEVICE_RESET ioctl. This ioctl zeroizes > all of the AP queues assigned to the guest. > > Signed-off-by: Tony Krowiak <akrowiak@xxxxxxxxxxxxx> > Reviewed-by: Halil Pasic <pasic@xxxxxxxxxxxxx> > Tested-by: Michael Mueller <mimu@xxxxxxxxxxxxx> > Tested-by: Farhan Ali <alifm@xxxxxxxxxxxxx> > Reviewed-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> > Tested-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> > Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > --- > 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 cc90323..d4a065b 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -832,7 +832,7 @@ static int vfio_ap_mdev_get_device_info(unsigned long arg) > if (info.argsz < minsz) > 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; > > @@ -848,6 +848,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); If I see it correctly, you call this function only ever with force == true (here and in the previous patch). Is that what you intended? > + break; > default: > ret = -EOPNOTSUPP; > break;