diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index 05cae02e6c..6358f49e43 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -1049,6 +1049,13 @@ KdDepthToFb(ScreenPtr pScreen, int depth) #endif +static int +KdSignalWrapper(int signum) +{ + kdCaughtSignal = TRUE; + return 1; /* use generic OS layer cleanup & abort */ +} + void KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) { @@ -1090,6 +1097,7 @@ KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) for (screen = card->screenList; screen; screen = screen->next) KdAddScreen(pScreenInfo, screen, argc, argv); + OsRegisterSigWrapper(KdSignalWrapper); xorgGlxCreateVendor(); #if defined(CONFIG_UDEV) || defined(CONFIG_HAL)