|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 3/5] Mini-OS: don't crash if no shutdown node is available
It might be perfectly fine not to have a control/shutdown Xenstore
node. If this is the case, don't crash, but just terminate the
shutdown thread after issuing a message that shutdown isn't available.
In fini_shutdown() clearing the watch can result in an error now, in
case the early exit above was taken. Just ignore this error now.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: Jason Andryuk <jandryuk@xxxxxxxxx>
---
shutdown.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/shutdown.c b/shutdown.c
index bb2c6f11..ded6b64d 100644
--- a/shutdown.c
+++ b/shutdown.c
@@ -75,7 +75,9 @@ static void shutdown_thread(void *p)
xenbus_wait_for_watch(&events);
if ((err = xenbus_read(XBT_NIL, path, &shutdown))) {
free(err);
- do_exit();
+ free(xenbus_unwatch_path_token(XBT_NIL, path, token));
+ printk("Shutdown Xenstore node not available.\n");
+ return;
}
if (end_shutdown_thread)
@@ -117,15 +119,9 @@ void init_shutdown(void)
void fini_shutdown(void)
{
- char *err;
-
end_shutdown_thread = 1;
xenbus_release_wait_for_watch(&events);
- err = xenbus_unwatch_path_token(XBT_NIL, path, token);
- if (err) {
- free(err);
- do_exit();
- }
+ free(xenbus_unwatch_path_token(XBT_NIL, path, token));
}
#endif
--
2.35.3
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |