summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChristoph Schlameuss <schlameuss@linux.ibm.com>2024-12-16 10:21:38 +0100
committerClaudio Imbrenda <imbrenda@linux.ibm.com>2025-01-07 16:36:11 +0100
commitb1da33b0e3dcd0d14cf375be2fd05b54cf75df56 (patch)
treef5b4d6cad757a5cd05785c6fc817340f3c4c8247 /tools
parent5021fd77d68fce28048b1af18c87bad6b7ffb282 (diff)
KVM: s390: selftests: Add ucontrol gis routing test
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 <schlameuss@linux.ibm.com> Tested-by: Hariharan Mari <hari55@linux.ibm.com> Reviewed-by: Hariharan Mari <hari55@linux.ibm.com> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> Link: https://lore.kernel.org/r/20241216092140.329196-5-schlameuss@linux.ibm.com Message-ID: <20241216092140.329196-5-schlameuss@linux.ibm.com> Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/testing/selftests/kvm/s390x/ucontrol_test.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/testing/selftests/kvm/s390x/ucontrol_test.c b/tools/testing/selftests/kvm/s390x/ucontrol_test.c
index b003abda8495..8f306395696e 100644
--- a/tools/testing/selftests/kvm/s390x/ucontrol_test.c
+++ b/tools/testing/selftests/kvm/s390x/ucontrol_test.c
@@ -783,4 +783,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