/* * Functions related to boot-time initialization: */ static void __cpuinit init_hrtimers_cpu(int cpu) { struct hrtimer_cpu_base *cpu_base = &per_cpu(hrtimer_bases, cpu); int i; for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { cpu_base->clock_base[i].cpu_base = cpu_base; timerqueue_init_head(&cpu_base->clock_base[i].active); } hrtimer_init_hres(cpu_base); }
/* * Functions related to boot-time initialization: */ static void __cpuinit init_hrtimers_cpu(int cpu) { struct hrtimer_cpu_base *cpu_base = &per_cpu(hrtimer_bases, cpu); int i; spin_lock_init(&cpu_base->lock); for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) cpu_base->clock_base[i].cpu_base = cpu_base; hrtimer_init_hres(cpu_base); }
/* * Functions related to boot-time initialization: */ int hrtimers_prepare_cpu(unsigned int cpu) { struct hrtimer_cpu_base *cpu_base = &per_cpu(hrtimer_bases, cpu); int i; for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { cpu_base->clock_base[i].cpu_base = cpu_base; timerqueue_init_head(&cpu_base->clock_base[i].active); } cpu_base->cpu = cpu; hrtimer_init_hres(cpu_base); return 0; }
/* * Functions related to boot-time initialization: */ static void __cpuinit init_hrtimers_cpu(int cpu) { struct hrtimer_cpu_base *cpu_base = &per_cpu(hrtimer_bases, cpu); int i; spin_lock_init(&cpu_base->lock); lockdep_set_class(&cpu_base->lock, &cpu_base->lock_key); for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) cpu_base->clock_base[i].cpu_base = cpu_base; INIT_LIST_HEAD(&cpu_base->cb_pending); hrtimer_init_hres(cpu_base); }
/* * Functions related to boot-time initialization: */ static void __cpuinit init_hrtimers_cpu(int cpu) { struct hrtimer_cpu_base *cpu_base = &per_cpu(hrtimer_bases, cpu); int i; unsigned long flags; raw_spin_lock_irqsave(&cpu_base->lock, flags); for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { cpu_base->clock_base[i].cpu_base = cpu_base; timerqueue_init_head(&cpu_base->clock_base[i].active); } hrtimer_init_hres(cpu_base); raw_spin_unlock_irqrestore(&cpu_base->lock, flags); }
/* * Functions related to boot-time initialization: */ static void __cpuinit init_hrtimers_cpu(int cpu) { struct hrtimer_cpu_base *cpu_base = &per_cpu(hrtimer_bases, cpu); int *lock_init = &per_cpu(hrtimer_base_lock_init, cpu); int i; if ((*lock_init) != cpu) { *lock_init = cpu; raw_spin_lock_init(&cpu_base->lock); pr_info("hrtimer base lock initialized for cpu%d\n", cpu); } for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { cpu_base->clock_base[i].cpu_base = cpu_base; timerqueue_init_head(&cpu_base->clock_base[i].active); } hrtimer_init_hres(cpu_base); }
/* * Functions related to boot-time initialization: */ static void __cpuinit init_hrtimers_cpu(int cpu) { struct hrtimer_cpu_base *cpu_base = &per_cpu(hrtimer_bases, cpu); static char __cpuinitdata cpu_base_done[NR_CPUS]; int i; unsigned long flags; if (!cpu_base_done[cpu]) { raw_spin_lock_init(&cpu_base->lock); cpu_base_done[cpu] = 1; } raw_spin_lock_irqsave(&cpu_base->lock, flags); for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { cpu_base->clock_base[i].cpu_base = cpu_base; timerqueue_init_head(&cpu_base->clock_base[i].active); } hrtimer_init_hres(cpu_base); raw_spin_unlock_irqrestore(&cpu_base->lock, flags); }