int setup_profiling_timer(unsigned int multiplier) { int i; unsigned long flags; /* */ if((!multiplier) || (lvl14_resolution / multiplier) < 500) return -EINVAL; spin_lock_irqsave(&prof_setup_lock, flags); for_each_possible_cpu(i) { load_profile_irq(i, lvl14_resolution / multiplier); prof_multiplier(i) = multiplier; } spin_unlock_irqrestore(&prof_setup_lock, flags); return 0; }
int setup_profiling_timer(unsigned int multiplier) { int i; unsigned long flags; /* Prevent level14 ticker IRQ flooding. */ if((!multiplier) || (lvl14_resolution / multiplier) < 500) return -EINVAL; save_and_cli(flags); for(i = 0; i < NR_CPUS; i++) { if(cpu_present_map & (1 << i)) { load_profile_irq(mid_xlate[i], lvl14_resolution / multiplier); prof_multiplier[i] = multiplier; } } restore_flags(flags); return 0; }