• Neil Horman's avatar
    kexec: sysrq: simplify sysrq-c handler · d6580a9f
    Neil Horman authored
    Currently the sysrq-c handler is bit over-engineered.  Its behavior is
    dependent on a few compile time and run time factors that alter its
    behavior which is really unnecessecary.
    
    If CONFIG_KEXEC is not configured, sysrq-c, crashes the system with a NULL
    pointer dereference.  If CONFIG_KEXEC is configured, it calls crash_kexec
    directly, which implies that the kexec kernel will either be booted (if
    its been previously loaded), or it will simply do nothing (the no kexec
    kernel has been loaded).
    
    It would be much easier to just simplify the whole thing to dereference a
    NULL pointer all the time regardless of configuration.  That way, it will
    always try to crash the system, and if a kexec kernel has been loaded into
    reserved space, it will still boot from the page fault trap handler
    (assuming panic_on_oops is set appropriately).
    
    [akpm@linux-foundation.org: build fix]
    Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
    Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Cc: Brayan Arraes <brayan@yack.com.br>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    d6580a9f
sysrq.c 14.6 KB