aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2021-07-09 15:00:21 +0000
committerAndriy Gapon <avg@FreeBSD.org>2024-02-18 14:38:27 +0000
commit5f7312a0d70c607afa9ce24ccd757321d043e02c (patch)
tree449a80e494ee0709d5351a678a7c213c86065887
parent0f354b2b588b60e2ef119ff2f480f7905c5db587 (diff)
downloadsrc-5f7312a0d70c607afa9ce24ccd757321d043e02c.tar.gz
src-5f7312a0d70c607afa9ce24ccd757321d043e02c.zip
syscon_power: do reboot after shutdown_panic is executed
A syscon_power instance can handle either poweroff or reboot, but not both. If the instance handles reboot then set its priority to be after shutdown_panic. This is to provide uniform experience with other platforms. MFC after: 3 weeks
-rw-r--r--sys/dev/syscon/syscon_power.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/syscon/syscon_power.c b/sys/dev/syscon/syscon_power.c
index 365dc0252417..6897cf3df422 100644
--- a/sys/dev/syscon/syscon_power.c
+++ b/sys/dev/syscon/syscon_power.c
@@ -161,9 +161,11 @@ syscon_power_attach(device_t dev)
OF_getencprop(node, "value", &sc->value, sizeof(sc->value));
}
+ /* Handle reboot after shutdown_panic. */
sc->reboot = ofw_bus_is_compatible(dev, "syscon-reboot");
sc->shutdown_tag = EVENTHANDLER_REGISTER(shutdown_final,
- syscon_power_shutdown_final, dev, SHUTDOWN_PRI_LAST);
+ syscon_power_shutdown_final, dev,
+ sc->reboot ? SHUTDOWN_PRI_LAST + 150 : SHUTDOWN_PRI_LAST);
return (0);
}