Release 4.7 kernel/up.c
/*
* Uniprocessor-only support functions. The counterpart to kernel/smp.c
*/
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/export.h>
#include <linux/smp.h>
int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
int wait)
{
unsigned long flags;
WARN_ON(cpu != 0);
local_irq_save(flags);
func(info);
local_irq_restore(flags);
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
andrew morton | andrew morton | 42 | 76.36% | 1 | 33.33% |
david daney | david daney | 12 | 21.82% | 1 | 33.33% |
ingo molnar | ingo molnar | 1 | 1.82% | 1 | 33.33% |
| Total | 55 | 100.00% | 3 | 100.00% |
EXPORT_SYMBOL(smp_call_function_single);
int smp_call_function_single_async(int cpu, struct call_single_data *csd)
{
unsigned long flags;
local_irq_save(flags);
csd->func(csd->info);
local_irq_restore(flags);
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
christoph hellwig | christoph hellwig | 34 | 87.18% | 1 | 33.33% |
jan kara | jan kara | 4 | 10.26% | 1 | 33.33% |
frederic weisbecker | frederic weisbecker | 1 | 2.56% | 1 | 33.33% |
| Total | 39 | 100.00% | 3 | 100.00% |
EXPORT_SYMBOL(smp_call_function_single_async);
int on_each_cpu(smp_call_func_t func, void *info, int wait)
{
unsigned long flags;
local_irq_save(flags);
func(info);
local_irq_restore(flags);
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
david daney | david daney | 37 | 100.00% | 1 | 100.00% |
| Total | 37 | 100.00% | 1 | 100.00% |
EXPORT_SYMBOL(on_each_cpu);
/*
* Note we still need to test the mask even for UP
* because we actually can get an empty mask from
* code that on SMP might call us without the local
* CPU in the mask.
*/
void on_each_cpu_mask(const struct cpumask *mask,
smp_call_func_t func, void *info, bool wait)
{
unsigned long flags;
if (cpumask_test_cpu(0, mask)) {
local_irq_save(flags);
func(info);
local_irq_restore(flags);
}
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
david daney | david daney | 51 | 100.00% | 1 | 100.00% |
| Total | 51 | 100.00% | 1 | 100.00% |
EXPORT_SYMBOL(on_each_cpu_mask);
/*
* Preemption is disabled here to make sure the cond_func is called under the
* same condtions in UP and SMP.
*/
void on_each_cpu_cond(bool (*cond_func)(int cpu, void *info),
smp_call_func_t func, void *info, bool wait,
gfp_t gfp_flags)
{
unsigned long flags;
preempt_disable();
if (cond_func(0, info)) {
local_irq_save(flags);
func(info);
local_irq_restore(flags);
}
preempt_enable();
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
david daney | david daney | 68 | 100.00% | 1 | 100.00% |
| Total | 68 | 100.00% | 1 | 100.00% |
EXPORT_SYMBOL(on_each_cpu_cond);
Overall Contributors
| Person | Tokens | Prop | Commits | CommitProp |
david daney | david daney | 185 | 63.79% | 3 | 30.00% |
andrew morton | andrew morton | 56 | 19.31% | 1 | 10.00% |
christoph hellwig | christoph hellwig | 38 | 13.10% | 1 | 10.00% |
jan kara | jan kara | 4 | 1.38% | 1 | 10.00% |
ingo molnar | ingo molnar | 4 | 1.38% | 2 | 20.00% |
frederic weisbecker | frederic weisbecker | 2 | 0.69% | 1 | 10.00% |
paul gortmaker | paul gortmaker | 1 | 0.34% | 1 | 10.00% |
| Total | 290 | 100.00% | 10 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.