From: Christian Borntraeger <borntraeger@linux.ibm.com>
To: Tony Krowiak <akrowiak@linux.ibm.com>,
linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org
Cc: jjherne@linux.ibm.com, pasic@linux.ibm.com,
alex.williamson@redhat.com, kwankhede@nvidia.com,
frankja@linux.ibm.com, imbrenda@linux.ibm.com, david@redhat.com
Subject: Re: [PATCH] s390/vfio-ap: handle response code 01 on queue reset
Date: Wed, 29 Nov 2023 18:12:34 +0100 [thread overview]
Message-ID: <b43414ef-7aa4-9e5c-a706-41861f0d346c@linux.ibm.com> (raw)
In-Reply-To: <20231129143529.260264-1-akrowiak@linux.ibm.com>
Am 29.11.23 um 15:35 schrieb Tony Krowiak:
> In the current implementation, response code 01 (AP queue number not valid)
> is handled as a default case along with other response codes returned from
> a queue reset operation that are not handled specifically. Barring a bug,
> response code 01 will occur only when a queue has been externally removed
> from the host's AP configuration; nn this case, the queue must
> be reset by the machine in order to avoid leaking crypto data if/when the
> queue is returned to the host's configuration. The response code 01 case
> will be handled specifically by logging a WARN message followed by cleaning
> up the IRQ resources.
>
To me it looks like this can be triggered by the LPAR admin, correct? So it
is not desireable but possible.
In that case I prefer to not use WARN, maybe use dev_warn or dev_err instead.
WARN can be a disruptive event if panic_on_warn is set.
> Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
> ---
> drivers/s390/crypto/vfio_ap_ops.c | 31 +++++++++++++++++++++++++++++++
> 1 file changed, 31 insertions(+)
>
> diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
> index 4db538a55192..91d6334574d8 100644
> --- a/drivers/s390/crypto/vfio_ap_ops.c
> +++ b/drivers/s390/crypto/vfio_ap_ops.c
> @@ -1652,6 +1652,21 @@ static int apq_status_check(int apqn, struct ap_queue_status *status)
> * a value indicating a reset needs to be performed again.
> */
> return -EAGAIN;
> + case AP_RESPONSE_Q_NOT_AVAIL:
> + /*
> + * This response code indicates the queue is not available.
> + * Barring a bug, response code 01 will occur only when a queue
> + * has been externally removed from the host's AP configuration;
> + * in which case, the queue must be reset by the machine in
> + * order to avoid leaking crypto data if/when the queue is
> + * returned to the host's configuration. In this case, let's go
> + * ahead and log a warning message and return 0 so the AQIC
> + * resources get cleaned up by the caller.
> + */
> + WARN(true,
> + "Unable to reset queue %02x.%04x: not in host AP configuration\n",
> + AP_QID_CARD(apqn), AP_QID_QUEUE(apqn));
> + return 0;
> default:
> WARN(true,
> "failed to verify reset of queue %02x.%04x: TAPQ rc=%u\n",
> @@ -1736,6 +1751,22 @@ static void vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q)
> q->reset_status.response_code = 0;
> vfio_ap_free_aqic_resources(q);
> break;
> + case AP_RESPONSE_Q_NOT_AVAIL:
> + /*
> + * This response code indicates the queue is not available.
> + * Barring a bug, response code 01 will occur only when a queue
> + * has been externally removed from the host's AP configuration;
> + * in which case, the queue must be reset by the machine in
> + * order to avoid leaking crypto data if/when the queue is
> + * returned to the host's configuration. In this case, let's go
> + * ahead and log a warning message then clean up the AQIC
> + * resources.
> + */
> + WARN(true,
> + "Unable to reset queue %02x.%04x: not in host AP configuration\n",
> + AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn));
> + vfio_ap_free_aqic_resources(q);
> + break;
> default:
> WARN(true,
> "PQAP/ZAPQ for %02x.%04x failed with invalid rc=%u\n",
next prev parent reply other threads:[~2023-11-29 17:13 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-29 14:35 Tony Krowiak
2023-11-29 17:12 ` Christian Borntraeger [this message]
2023-12-04 14:53 ` Tony Krowiak
2023-12-04 15:16 ` Christian Borntraeger
2023-12-04 16:15 ` Halil Pasic
2023-12-04 17:05 ` Tony Krowiak
2023-12-05 8:04 ` Harald Freudenberger
2023-12-06 17:17 ` Halil Pasic
2023-12-07 15:31 ` Anthony Krowiak
2023-12-04 12:10 ` Halil Pasic
2023-12-04 17:51 ` Tony Krowiak
2023-12-04 22:05 ` Halil Pasic
2024-01-09 17:02 ` Anthony Krowiak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b43414ef-7aa4-9e5c-a706-41861f0d346c@linux.ibm.com \
--to=borntraeger@linux.ibm.com \
--cc=akrowiak@linux.ibm.com \
--cc=alex.williamson@redhat.com \
--cc=david@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=jjherne@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=kwankhede@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pasic@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®