Module Name:    src
Committed By:   riastradh
Date:           Thu Aug 11 13:04:35 UTC 2022

Modified Files:
        src/sys/arch/arm/fdt: gic_fdt.c

Log Message:
gic at fdt: Don't assume all irqs are established on disestablish.

Fixes panic on detach of PCI devices on pcihost.


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/fdt/gic_fdt.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/fdt/gic_fdt.c
diff -u src/sys/arch/arm/fdt/gic_fdt.c:1.24 src/sys/arch/arm/fdt/gic_fdt.c:1.25
--- src/sys/arch/arm/fdt/gic_fdt.c:1.24	Thu Nov  4 21:31:30 2021
+++ src/sys/arch/arm/fdt/gic_fdt.c	Thu Aug 11 13:04:35 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: gic_fdt.c,v 1.24 2021/11/04 21:31:30 jakllsch Exp $ */
+/* $NetBSD: gic_fdt.c,v 1.25 2022/08/11 13:04:35 riastradh Exp $ */
 
 /*-
  * Copyright (c) 2015-2017 Jared McNeill <jmcne...@invisible.ca>
@@ -29,7 +29,7 @@
 #include "pci.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gic_fdt.c,v 1.24 2021/11/04 21:31:30 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gic_fdt.c,v 1.25 2022/08/11 13:04:35 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -328,7 +328,7 @@ gic_fdt_disestablish(device_t dev, void 
 
 	for (n = 0; n < GIC_MAXIRQ; n++) {
 		firq = sc->sc_irq[n];
-		if (firq->intr_ih != ih)
+		if (firq == NULL || firq->intr_ih != ih)
 			continue;
 
 		KASSERT(firq->intr_refcnt > 0);

Reply via email to