On 6/16/20 1:50 PM, Christian Borntraeger wrote:
On 05.06.20 23:39, Tony Krowiak wrote:
[...]
+static void vfio_ap_mdev_link_queues(struct ap_matrix_mdev *matrix_mdev,
+ enum qlink_type type,
+ unsigned long qlink_id)
+{
+ unsigned long id;
+ struct vfio_ap_queue *q;
+
+ switch (type) {
+ case LINK_APID:
+ case UNLINK_APID:
+ for_each_set_bit_inv(id, matrix_mdev->matrix.aqm,
+ matrix_mdev->matrix.aqm_max + 1) {
+ q = vfio_ap_get_queue(AP_MKQID(qlink_id, id));
+ if (q) {
+ if (type == LINK_APID)
+ q->matrix_mdev = matrix_mdev;
+ else
+ q->matrix_mdev = NULL;> + }
+ }
+ break;
+ default:
Can you rather use
case LINK_APQI:
case UNLINK_APQI:
and add a default case with a WARN_ON_ONCE?
Yes I can.
+ for_each_set_bit_inv(id, matrix_mdev->matrix.apm,
+ matrix_mdev->matrix.apm_max + 1) {
+ q = vfio_ap_get_queue(AP_MKQID(id, qlink_id));
+ if (q) {
+ if (type == LINK_APQI)
+ q->matrix_mdev = matrix_mdev;
+ else
+ q->matrix_mdev = NULL;
+ }
+ }
+ break;
+ }
+}
+