Page MenuHomeFreeBSD

D36611.id.diff
No OneTemporary

D36611.id.diff

diff --git a/sys/arm/arm/gic.c b/sys/arm/arm/gic.c
--- a/sys/arm/arm/gic.c
+++ b/sys/arm/arm/gic.c
@@ -270,7 +270,8 @@
"%s,s%u", name, irq - GIC_FIRST_SPI);
}
if (error != 0) {
- /* XXX call intr_isrc_deregister() */
+ while (--irq < num)
+ intr_isrc_deregister(&irqs[irq].gi_isrc);
free(irqs, M_DEVBUF);
return (error);
}
diff --git a/sys/arm/freescale/imx/imx_gpio.c b/sys/arm/freescale/imx/imx_gpio.c
--- a/sys/arm/freescale/imx/imx_gpio.c
+++ b/sys/arm/freescale/imx/imx_gpio.c
@@ -503,7 +503,8 @@
error = intr_isrc_register(&sc->gpio_pic_irqsrc[irq].gi_isrc,
sc->dev, 0, "%s,%u", name, irq);
if (error != 0) {
- /* XXX call intr_isrc_deregister() */
+ while (--irq < NGPIO)
+ intr_isrc_deregister(&sc->gpio_pic_irqsrc[irq].gi_isrc);
device_printf(sc->dev, "%s failed", __func__);
return (error);
}
diff --git a/sys/arm/mv/mpic.c b/sys/arm/mv/mpic.c
--- a/sys/arm/mv/mpic.c
+++ b/sys/arm/mv/mpic.c
@@ -209,7 +209,8 @@
name);
}
if (error != 0) {
- /* XXX call intr_isrc_deregister() */
+ while (--irq < sc->nirqs)
+ intr_isrc_deregister(&sc->mpic_isrcs[irq].mmi_isrc);
device_printf(sc->sc_dev, "%s failed", __func__);
return (error);
}
diff --git a/sys/arm64/arm64/gic_v3.c b/sys/arm64/arm64/gic_v3.c
--- a/sys/arm64/arm64/gic_v3.c
+++ b/sys/arm64/arm64/gic_v3.c
@@ -369,7 +369,8 @@
"%s,s%u", name, irq - GIC_FIRST_SPI);
}
if (err != 0) {
- /* XXX call intr_isrc_deregister() */
+ while (--irq < sc->gic_nirqs)
+ intr_isrc_deregister(&sc->gic_irqs[irq].gi_isrc);
free(sc->gic_irqs, M_DEVBUF);
return (err);
}
diff --git a/sys/dev/gpio/pl061.c b/sys/dev/gpio/pl061.c
--- a/sys/dev/gpio/pl061.c
+++ b/sys/dev/gpio/pl061.c
@@ -498,13 +498,11 @@
return (0);
free_isrc:
- /*
- * XXX isrc_release_counters() not implemented
- * for (irq = 0; irq < PL061_NUM_GPIO; irq++)
- * intr_isrc_deregister(PIC_INTR_ISRC(sc, irq));
- */
+ for (irq = 0; irq < PL061_NUM_GPIO; irq++)
+ intr_isrc_deregister(PIC_INTR_ISRC(sc, irq));
bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irq_rid,
sc->sc_irq_res);
+
free_pic:
/*
* XXX intr_pic_deregister: not implemented

File Metadata

Mime Type
text/plain
Expires
Tue, Aug 25, 6:27 PM (50 m, 22 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37232304
Default Alt Text
D36611.id.diff (2 KB)

Event Timeline