cregit-Linux how code gets into the kernel

Release 4.8 lib/smp_processor_id.c

Directory: lib
/*
 * lib/smp_processor_id.c
 *
 * DEBUG_PREEMPT variant of smp_processor_id().
 */
#include <linux/export.h>
#include <linux/kallsyms.h>
#include <linux/sched.h>


notrace static unsigned int check_preemption_disabled(const char *what1, const char *what2) { int this_cpu = raw_smp_processor_id(); if (likely(preempt_count())) goto out; if (irqs_disabled()) goto out; /* * Kernel threads bound to a single CPU can safely use * smp_processor_id(): */ if (cpumask_equal(tsk_cpus_allowed(current), cpumask_of(this_cpu))) goto out; /* * It is valid to assume CPU-locality during early bootup: */ if (system_state != SYSTEM_RUNNING) goto out; /* * Avoid recursion: */ preempt_disable_notrace(); if (!printk_ratelimit()) goto out_enable; printk(KERN_ERR "BUG: using %s%s() in preemptible [%08x] code: %s/%d\n", what1, what2, preempt_count() - 1, current->comm, current->pid); print_symbol("caller is %s\n", (long)__builtin_return_address(0)); dump_stack(); out_enable: preempt_enable_no_resched_notrace(); out: return this_cpu; }

Contributors

PersonTokensPropCommitsCommitProp
ingo molnaringo molnar10477.61%111.11%
christoph lameterchristoph lameter1611.94%111.11%
peter zijlstrapeter zijlstra42.99%222.22%
mike travismike travis32.24%111.11%
andrew mortonandrew morton21.49%111.11%
rusty russellrusty russell21.49%111.11%
steven rostedtsteven rostedt21.49%111.11%
arnaldo carvalho de meloarnaldo carvalho de melo10.75%111.11%
Total134100.00%9100.00%


notrace unsigned int debug_smp_processor_id(void) { return check_preemption_disabled("smp_processor_id", ""); }

Contributors

PersonTokensPropCommitsCommitProp
christoph lameterchristoph lameter17100.00%1100.00%
Total17100.00%1100.00%

EXPORT_SYMBOL(debug_smp_processor_id);
notrace void __this_cpu_preempt_check(const char *op) { check_preemption_disabled("__this_cpu_", op); }

Contributors

PersonTokensPropCommitsCommitProp
christoph lameterchristoph lameter18100.00%1100.00%
Total18100.00%1100.00%

EXPORT_SYMBOL(__this_cpu_preempt_check);

Overall Contributors

PersonTokensPropCommitsCommitProp
ingo molnaringo molnar11560.85%19.09%
christoph lameterchristoph lameter5629.63%19.09%
peter zijlstrapeter zijlstra42.12%218.18%
mike travismike travis31.59%19.09%
tim schmielautim schmielau31.59%19.09%
andrew mortonandrew morton21.06%19.09%
rusty russellrusty russell21.06%19.09%
steven rostedtsteven rostedt21.06%19.09%
paul gortmakerpaul gortmaker10.53%19.09%
arnaldo carvalho de meloarnaldo carvalho de melo10.53%19.09%
Total189100.00%11100.00%
Directory: lib
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.