summaryrefslogtreecommitdiff
path: root/drivers/s390
diff options
context:
space:
mode:
authorTony Krowiak <akrowiak@linux.ibm.com>2023-01-18 15:31:11 -0500
committerHeiko Carstens <hca@linux.ibm.com>2023-01-22 18:42:36 +0100
commit7cb7636a1ac158c00f9da8f09e333c1ddd881eca (patch)
tree76aa228fa819f45281e57312f33edf38afc982f0 /drivers/s390
parent51d4d9877087685ac577a4a314f85e1b2046cae6 (diff)
s390/vfio_ap: increase max wait time for reset verification
Increase the maximum time to wait for verification of a queue reset operation to 200ms. Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com> Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com> Reviewed-by: Harald Freudenberger <freude@linux.ibm.com> Link: https://lore.kernel.org/r/20230118203111.529766-7-akrowiak@linux.ibm.com Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/crypto/vfio_ap_ops.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
index 3bf012b3508e..cd488639a15b 100644
--- a/drivers/s390/crypto/vfio_ap_ops.c
+++ b/drivers/s390/crypto/vfio_ap_ops.c
@@ -30,6 +30,9 @@
#define AP_QUEUE_UNASSIGNED "unassigned"
#define AP_QUEUE_IN_USE "in use"
+#define MAX_RESET_CHECK_WAIT 200 /* Sleep max 200ms for reset check */
+#define AP_RESET_INTERVAL 20 /* Reset sleep interval (20ms) */
+
static int vfio_ap_mdev_reset_queues(struct ap_queue_table *qtable);
static struct vfio_ap_queue *vfio_ap_find_queue(int apqn);
static const struct vfio_device_ops vfio_ap_matrix_dev_ops;
@@ -1626,11 +1629,12 @@ static int apq_status_check(int apqn, struct ap_queue_status *status)
static int apq_reset_check(struct vfio_ap_queue *q)
{
- int iters = 2, ret;
+ int ret;
+ int iters = MAX_RESET_CHECK_WAIT / AP_RESET_INTERVAL;
struct ap_queue_status status;
- while (iters--) {
- msleep(20);
+ for (; iters > 0; iters--) {
+ msleep(AP_RESET_INTERVAL);
status = ap_tapq(q->apqn, NULL);
ret = apq_status_check(q->apqn, &status);
if (ret != -EBUSY)