On 9/13/23 9:06 AM, Tony Krowiak wrote: > From: Anthony Krowiak <akrowiak@xxxxxxxxxxxxx> > > In the vfio_ap_irq_enable function, after the page containing the > notification indicator byte (NIB) is pinned, the function attempts > to register the guest ISC. If registration fails, the function sets the > status response code and returns without unpinning the page containing > the NIB. In order to avoid a memory leak, the NIB should be unpinned before > returning from the vfio_ap_irq_enable function. > > Fixes: 783f0a3ccd79 ("s390/vfio-ap: add s390dbf logging to the vfio_ap_irq_enable function") > > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> > Signed-off-by: Anthony Krowiak <akrowiak@xxxxxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> Oops, good find. Reviewed-by: Matthew Rosato <mjrosato@xxxxxxxxxxxxx> > --- > drivers/s390/crypto/vfio_ap_ops.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c > index 4db538a55192..9cb28978c186 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -457,6 +457,7 @@ static struct ap_queue_status vfio_ap_irq_enable(struct vfio_ap_queue *q, > VFIO_AP_DBF_WARN("%s: gisc registration failed: nisc=%d, isc=%d, apqn=%#04x\n", > __func__, nisc, isc, q->apqn); > > + vfio_unpin_pages(&q->matrix_mdev->vdev, nib, 1); > status.response_code = AP_RESPONSE_INVALID_GISA; > return status; > }