given in the IORT node. Using a non-MSI interrupt controller here will
crash as ic->ic_establish_msi will be NULL.
tested by phessler@
ok phessler@ patrick@
-/* $OpenBSD: acpipci.c,v 1.40 2023/09/12 08:32:58 jmatthew Exp $ */
+/* $OpenBSD: acpipci.c,v 1.41 2023/09/16 23:25:16 jmatthew Exp $ */
/*
* Copyright (c) 2018 Mark Kettenis
*
itsn = (struct acpi_iort_its_node *)&node[1];
LIST_FOREACH(icl, &interrupt_controllers, ic_list) {
for (i = 0; i < itsn->number_of_itss; i++) {
- if (icl->ic_gic_its_id == itsn->its_ids[i]) {
+ if (icl->ic_establish_msi != NULL &&
+ icl->ic_gic_its_id == itsn->its_ids[i]) {
*ic = icl;
break;
}