On 11/26/20 9:08 AM, Halil Pasic wrote:
On Tue, 24 Nov 2020 16:40:04 -0500
Tony Krowiak <akrowiak@xxxxxxxxxxxxx> wrote:
@@ -1155,6 +1243,11 @@ static int vfio_ap_mdev_reset_queues(struct mdev_device *mdev)
matrix_mdev->matrix.apm_max + 1) {
for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm,
matrix_mdev->matrix.aqm_max + 1) {
+ q = vfio_ap_mdev_get_queue(matrix_mdev,
+ AP_MKQID(apid, apqi));
+ if (!q)
+ continue;
+
ret = vfio_ap_mdev_reset_queue(apid, apqi, 1);
/*
* Regardless whether a queue turns out to be busy, or
@@ -1164,9 +1257,7 @@ static int vfio_ap_mdev_reset_queues(struct mdev_device *mdev)
if (ret)
rc = ret;
- q = vfio_ap_get_queue(matrix_mdev, AP_MKQID(apid, apqi);
- if (q)
- vfio_ap_free_aqic_resources(q);
+ vfio_ap_free_aqic_resources(q);
}
}
During the review of v11 we discussed this. Introducing this the one
way around, just to change it in the next patch, which should deal
with something different makes no sense to me.
This is handled by the vfio_ap_mdev_reset_queue() function in the
next version.
BTW I've provided a ton of feedback for '[PATCH v11 03/14]
s390/vfio-ap: manage link between queue struct and matrix mdev', but I
can't find your response to that. Some of the things resurface here, and
I don't feel like repeating myself. Can you provide me an answer to
the v11 version?
I can.