[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a6f174bf-08e2-835d-b609-4d1c160fe658@linux.ibm.com>
Date: Tue, 20 Dec 2022 09:25:29 -0500
From: Anthony Krowiak <akrowiak@...ux.ibm.com>
To: freude@...ux.ibm.com
Cc: linux-s390@...r.kernel.org, linux-kernel@...r.kernel.org,
kvm@...r.kernel.org, jjherne@...ux.ibm.com, borntraeger@...ibm.com,
cohuck@...hat.com, mjrosato@...ux.ibm.com, pasic@...ux.ibm.com,
alex.williamson@...hat.com, kwankhede@...dia.com,
fiuczy@...ux.ibm.com
Subject: Re: [PATCH 5/7] s390/vfio_ap: fix handling of error response codes
On 12/15/22 5:56 AM, Harald Freudenberger wrote:
> On 2022-12-13 16:44, Tony Krowiak wrote:
>> Some response codes returned from the queue reset function are not being
>> handled correctly; this patch fixes them:
>>
>> 1. Response code 3, AP queue deconfigured: Deconfiguring an AP adapter
>> resets all of its queues, so this is handled by indicating the reset
>> verification completed successfully.
>>
>> 2. For all response codes other than 0 (normal reset completion), 2
>> (queue reset in progress) and 3 (AP deconfigured), the -EIO error
>> will
>> be returned from the vfio_ap_mdev_reset_queue() function. In all
>> cases,
>> all fields of the status word other than the response code will be
>> set to zero, so it makes no sense to check status bits.
>>
>> Signed-off-by: Tony Krowiak <akrowiak@...ux.ibm.com>
>> ---
>> drivers/s390/crypto/vfio_ap_ops.c | 17 +++++++----------
>> 1 file changed, 7 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/s390/crypto/vfio_ap_ops.c
>> b/drivers/s390/crypto/vfio_ap_ops.c
>> index c0cf5050be59..dbf681715a6d 100644
>> --- a/drivers/s390/crypto/vfio_ap_ops.c
>> +++ b/drivers/s390/crypto/vfio_ap_ops.c
>> @@ -1659,17 +1659,15 @@ static int vfio_ap_mdev_reset_queue(struct
>> vfio_ap_queue *q)
>> if (ret)
>> break;
>> goto retry_zapq;
>> - case AP_RESPONSE_Q_NOT_AVAIL:
>> case AP_RESPONSE_DECONFIGURED:
>> - case AP_RESPONSE_CHECKSTOPPED:
>> - WARN_ONCE(status.irq_enabled,
>> - "PQAP/ZAPQ for %02x.%04x failed with rc=%u while IRQ
>> enabled",
>> - AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn),
>> - status.response_code);
>> - ret = -EBUSY;
>> - goto free_resources;
>> + /*
>> + * When an AP adapter is deconfigured, the associated
>> + * queues are reset, so let's return a value indicating the
>> reset
>> + * completed successfully.
>> + */
>> + ret = 0;
>> + break;
>> default:
>> - /* things are really broken, give up */
>> WARN(true,
>> "PQAP/ZAPQ for %02x.%04x failed with invalid rc=%u\n",
>> AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn),
>> @@ -1677,7 +1675,6 @@ static int vfio_ap_mdev_reset_queue(struct
>> vfio_ap_queue *q)
>> return -EIO;
>> }
>>
>> -free_resources:
>> vfio_ap_free_aqic_resources(q);
>>
>> return ret;
>
> Reviewed-by: Harald Freudenberger <freude@...ux.ibm.com>
Thanks for the review.
Powered by blists - more mailing lists