um: Don't trace irqflags during shutdown
authorJohannes Berg <johannes.berg@intel.com>
Tue, 17 Sep 2019 11:20:14 +0000 (13:20 +0200)
committerRichard Weinberger <richard@nod.at>
Mon, 25 Nov 2019 21:42:57 +0000 (22:42 +0100)
In the main() code, we eventually enable signals just before
exec() or exit(), in order to to not have signals pending and
delivered *after* the exec().

I've observed SIGSEGV loops at this point, and the reason seems
to be the irqflags tracing; this makes sense as the kernel is
no longer really functional at this point. Since there's really
no reason to use unblock_signals_trace() here (I had just done
a global search & replace), use the plain unblock_signals() in
this case to avoid going into the no longer functional kernel.

Fixes: 0dafcbe128d2 ("um: Implement TRACE_IRQFLAGS_SUPPORT")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/os-Linux/main.c

index 8014dfa..c8a42ec 100644 (file)
@@ -170,7 +170,7 @@ int __init main(int argc, char **argv, char **envp)
         * that they won't be delivered after the exec, when
         * they are definitely not expected.
         */
-       unblock_signals_trace();
+       unblock_signals();
 
        os_info("\n");
        /* Reboot */