Add a selftests for the interrupt routing configuration when using
ucontrol VMs.

Calling the test may trigger a null pointer dereferences on kernels not
containing the fixes in this patch series.

Signed-off-by: Christoph Schlameuss <schlame...@linux.ibm.com>
---
 .../selftests/kvm/s390x/ucontrol_test.c       | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/tools/testing/selftests/kvm/s390x/ucontrol_test.c 
b/tools/testing/selftests/kvm/s390x/ucontrol_test.c
index 972fac1023b5..d3a5dbfabade 100644
--- a/tools/testing/selftests/kvm/s390x/ucontrol_test.c
+++ b/tools/testing/selftests/kvm/s390x/ucontrol_test.c
@@ -785,4 +785,23 @@ TEST_F(uc_kvm, uc_flic_attrs)
        close(cd.fd);
 }
 
+TEST_F(uc_kvm, uc_set_gsi_routing)
+{
+       struct kvm_irq_routing *routing = kvm_gsi_routing_create();
+       struct kvm_irq_routing_entry ue = {
+               .type = KVM_IRQ_ROUTING_S390_ADAPTER,
+               .gsi = 1,
+               .u.adapter = (struct kvm_irq_routing_s390_adapter) {
+                       .ind_addr = 0,
+               },
+       };
+       int rc;
+
+       routing->entries[0] = ue;
+       routing->nr = 1;
+       rc = ioctl(self->vm_fd, KVM_SET_GSI_ROUTING, routing);
+       ASSERT_EQ(-1, rc) TH_LOG("err %s (%i)", strerror(errno), errno);
+       ASSERT_EQ(EINVAL, errno) TH_LOG("err %s (%i)", strerror(errno), errno);
+}
+
 TEST_HARNESS_MAIN
-- 
2.47.1


Reply via email to