cregit-Linux how code gets into the kernel

Release 4.14 arch/s390/kernel/stacktrace.c

Directory: arch/s390/kernel
/*
 * Stack trace management functions
 *
 *  Copyright IBM Corp. 2006
 *  Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
 */

#include <linux/sched.h>
#include <linux/sched/debug.h>
#include <linux/stacktrace.h>
#include <linux/kallsyms.h>
#include <linux/export.h>


static int __save_address(void *data, unsigned long address, int nosched) { struct stack_trace *trace = data; if (nosched && in_sched_functions(address)) return 0; if (trace->skip > 0) { trace->skip--; return 0; } if (trace->nr_entries < trace->max_entries) { trace->entries[trace->nr_entries++] = address; return 0; } return 1; }

Contributors

PersonTokensPropCommitsCommitProp
Heiko Carstens84100.00%5100.00%
Total84100.00%5100.00%


static int save_address(void *data, unsigned long address, int reliable) { return __save_address(data, address, 0); }

Contributors

PersonTokensPropCommitsCommitProp
Heiko Carstens27100.00%6100.00%
Total27100.00%6100.00%


static int save_address_nosched(void *data, unsigned long address, int reliable) { return __save_address(data, address, 1); }

Contributors

PersonTokensPropCommitsCommitProp
Heiko Carstens27100.00%5100.00%
Total27100.00%5100.00%


void save_stack_trace(struct stack_trace *trace) { unsigned long sp; sp = current_stack_pointer(); dump_trace(save_address, trace, NULL, sp); if (trace->nr_entries < trace->max_entries) trace->entries[trace->nr_entries++] = ULONG_MAX; }

Contributors

PersonTokensPropCommitsCommitProp
Heiko Carstens52100.00%5100.00%
Total52100.00%5100.00%

EXPORT_SYMBOL_GPL(save_stack_trace);
void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) { unsigned long sp; sp = tsk->thread.ksp; if (tsk == current) sp = current_stack_pointer(); dump_trace(save_address_nosched, trace, tsk, sp); if (trace->nr_entries < trace->max_entries) trace->entries[trace->nr_entries++] = ULONG_MAX; }

Contributors

PersonTokensPropCommitsCommitProp
Heiko Carstens71100.00%5100.00%
Total71100.00%5100.00%

EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
void save_stack_trace_regs(struct pt_regs *regs, struct stack_trace *trace) { unsigned long sp; sp = kernel_stack_pointer(regs); dump_trace(save_address, trace, NULL, sp); if (trace->nr_entries < trace->max_entries) trace->entries[trace->nr_entries++] = ULONG_MAX; }

Contributors

PersonTokensPropCommitsCommitProp
Pratyush Anand5491.53%150.00%
Heiko Carstens58.47%150.00%
Total59100.00%2100.00%

EXPORT_SYMBOL_GPL(save_stack_trace_regs);

Overall Contributors

PersonTokensPropCommitsCommitProp
Heiko Carstens27879.20%1275.00%
Pratyush Anand5916.81%16.25%
Ingo Molnar133.70%212.50%
Paul Gortmaker10.28%16.25%
Total351100.00%16100.00%
Directory: arch/s390/kernel
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.