lkml.org 
[lkml]   [2010]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/2] x86: Unify save_stack_address() and save_stack_address_nosched()
    Date
    From: Oleg Nesterov <oleg@redhat.com>

    Cleanup. Factor the common code in save_stack_address() and
    save_stack_address_nosched().

    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Cc: Roland McGrath <roland@redhat.com>
    Cc: Arjan van de Ven <arjan@linux.intel.com>
    Cc: Vegard Nossum <vegard.nossum@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    LKML-Reference: <20100603193243.GA31534@redhat.com>
    Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
    ---
    arch/x86/kernel/stacktrace.c | 24 ++++++++++--------------
    1 files changed, 10 insertions(+), 14 deletions(-)

    diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
    index abc321d..b53c525 100644
    --- a/arch/x86/kernel/stacktrace.c
    +++ b/arch/x86/kernel/stacktrace.c
    @@ -23,13 +23,16 @@ static int save_stack_stack(void *data, char *name)
    return 0;
    }

    -static void save_stack_address(void *data, unsigned long addr, int reliable)
    +static void
    +__save_stack_address(void *data, unsigned long addr, bool reliable, bool nosched)
    {
    struct stack_trace *trace = data;
    #ifdef CONFIG_FRAME_POINTER
    if (!reliable)
    return;
    #endif
    + if (nosched && in_sched_functions(addr))
    + return;
    if (trace->skip > 0) {
    trace->skip--;
    return;
    @@ -38,22 +41,15 @@ static void save_stack_address(void *data, unsigned long addr, int reliable)
    trace->entries[trace->nr_entries++] = addr;
    }

    +static void save_stack_address(void *data, unsigned long addr, int reliable)
    +{
    + return __save_stack_address(data, addr, reliable, false);
    +}
    +
    static void
    save_stack_address_nosched(void *data, unsigned long addr, int reliable)
    {
    - struct stack_trace *trace = data;
    -#ifdef CONFIG_FRAME_POINTER
    - if (!reliable)
    - return;
    -#endif
    - if (in_sched_functions(addr))
    - return;
    - if (trace->skip > 0) {
    - trace->skip--;
    - return;
    - }
    - if (trace->nr_entries < trace->max_entries)
    - trace->entries[trace->nr_entries++] = addr;
    + return __save_stack_address(data, addr, reliable, true);
    }

    static const struct stacktrace_ops save_stack_ops = {
    --
    1.6.2.3


    \
     
     \ /
      Last update: 2010-06-08 22:17    [W:0.022 / U:59.396 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site