• Boris Ostrovsky's avatar
    x86/xen: Return from panic notifier · c6875f3a
    Boris Ostrovsky authored
    Currently execution of panic() continues until Xen's panic notifier
    (xen_panic_event()) is called at which point we make a hypercall that
    never returns.
    
    This means that any notifier that is supposed to be called later as
    well as significant part of panic() code (such as pstore writes from
    kmsg_dump()) is never executed.
    
    There is no reason for xen_panic_event() to be this last point in
    execution since panic()'s emergency_restart() will call into
    xen_emergency_restart() from where we can perform our hypercall.
    
    Nevertheless, we will provide xen_legacy_crash boot option that will
    preserve original behavior during crash. This option could be used,
    for example, if running kernel dumper (which happens after panic
    notifiers) is undesirable.
    Reported-by: default avatarJames Dingwall <james@dingwall.me.uk>
    Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
    c6875f3a
enlighten.c 9.6 KB