git: 3582b9e372c2 - main - arm64: Check for intrng-reported errors in gicv3_its
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 03 Jan 2022 17:10:33 UTC
The branch main has been updated by jrtc27:
URL: https://cgit.FreeBSD.org/src/commit/?id=3582b9e372c2556adc0fcc42466ead8b2bda7850
commit 3582b9e372c2556adc0fcc42466ead8b2bda7850
Author: Jessica Clarke <jrtc27@FreeBSD.org>
AuthorDate: 2022-01-03 17:09:42 +0000
Commit: Jessica Clarke <jrtc27@FreeBSD.org>
CommitDate: 2022-01-03 17:09:42 +0000
arm64: Check for intrng-reported errors in gicv3_its
Currently, any errors when adding a PIC child handler are ignored,
instead just continuing on to registering that PIC as an MSI, and
ignoring any errors that occur for that too.
Reviewed by: andrew
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D33342
---
sys/arm64/arm64/gicv3_its.c | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/sys/arm64/arm64/gicv3_its.c b/sys/arm64/arm64/gicv3_its.c
index 516cfbd9e358..2388aeb55f8c 100644
--- a/sys/arm64/arm64/gicv3_its.c
+++ b/sys/arm64/arm64/gicv3_its.c
@@ -1956,11 +1956,19 @@ gicv3_its_fdt_attach(device_t dev)
/* Register this device as a interrupt controller */
xref = OF_xref_from_node(ofw_bus_get_node(dev));
sc->sc_pic = intr_pic_register(dev, xref);
- intr_pic_add_handler(device_get_parent(dev), sc->sc_pic,
+ err = intr_pic_add_handler(device_get_parent(dev), sc->sc_pic,
gicv3_its_intr, sc, sc->sc_irq_base, sc->sc_irq_length);
+ if (err != 0) {
+ device_printf(dev, "Failed to add PIC handler: %d\n", err);
+ return (err);
+ }
/* Register this device to handle MSI interrupts */
- intr_msi_register(dev, xref);
+ err = intr_msi_register(dev, xref);
+ if (err != 0) {
+ device_printf(dev, "Failed to register for MSIs: %d\n", err);
+ return (err);
+ }
return (0);
}
@@ -2017,11 +2025,19 @@ gicv3_its_acpi_attach(device_t dev)
di = device_get_ivars(dev);
sc->sc_pic = intr_pic_register(dev, di->msi_xref);
- intr_pic_add_handler(device_get_parent(dev), sc->sc_pic,
+ err = intr_pic_add_handler(device_get_parent(dev), sc->sc_pic,
gicv3_its_intr, sc, sc->sc_irq_base, sc->sc_irq_length);
+ if (err != 0) {
+ device_printf(dev, "Failed to add PIC handler: %d\n", err);
+ return (err);
+ }
/* Register this device to handle MSI interrupts */
- intr_msi_register(dev, di->msi_xref);
+ err = intr_msi_register(dev, di->msi_xref);
+ if (err != 0) {
+ device_printf(dev, "Failed to register for MSIs: %d\n", err);
+ return (err);
+ }
return (0);
}