diff --git a/sys/bus/gpio/gpio_acpi/gpio_acpi.c b/sys/bus/gpio/gpio_acpi/gpio_acpi.c --- a/sys/bus/gpio/gpio_acpi/gpio_acpi.c +++ b/sys/bus/gpio/gpio_acpi/gpio_acpi.c @@ -449,7 +449,8 @@ KKASSERT(info->dev != NULL); GPIO_TEARDOWN_INTR(sc->parent, info->cookie); GPIO_FREE_INTR(sc->parent, info->cookie); - /* XXX Wait until ACPI Event handler has finished */ + /* DF-1094: drain the controller IRQ and cancel any queued ACPI event work */ + GPIO_TEARDOWN_INTR(sc->parent, info->cookie); memset(info, 0, sizeof(*info)); } kfree(sc->infos, M_DEVBUF);