• Frederic Weisbecker's avatar
    perf: Stop stack frame walking off kernel addresses boundaries · c2c5d45d
    Frederic Weisbecker authored
    While processing kernel perf callchains, an bad entry can be
    considered as a valid stack pointer but not as a kernel address.
    
    In this case, we hang in an endless loop. This can happen in an
    x86-32 kernel after processing the last entry in a kernel
    stacktrace.
    
    Just stop the stack frame walking after we encounter an invalid
    kernel address.
    
    This fixes a hard lockup in x86-32.
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Paul Mackerras <paulus@samba.org>
    LKML-Reference: <1262227945-27014-1-git-send-regression-fweisbec@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    c2c5d45d
dumpstack.c 8.63 KB