Lines Matching refs:head

169 		struct uv_rtc_timer_head *head = blade_info[bid];  in uv_rtc_allocate_timers()  local
171 if (!head) { in uv_rtc_allocate_timers()
172 head = kmalloc_node(sizeof(struct uv_rtc_timer_head) + in uv_rtc_allocate_timers()
176 if (!head) { in uv_rtc_allocate_timers()
180 spin_lock_init(&head->lock); in uv_rtc_allocate_timers()
181 head->ncpus = uv_blade_nr_possible_cpus(bid); in uv_rtc_allocate_timers()
182 head->next_cpu = -1; in uv_rtc_allocate_timers()
183 blade_info[bid] = head; in uv_rtc_allocate_timers()
186 head->cpu[bcpu].lcpu = cpu; in uv_rtc_allocate_timers()
187 head->cpu[bcpu].expires = ULLONG_MAX; in uv_rtc_allocate_timers()
194 static void uv_rtc_find_next_timer(struct uv_rtc_timer_head *head, int pnode) in uv_rtc_find_next_timer() argument
199 head->next_cpu = -1; in uv_rtc_find_next_timer()
200 for (c = 0; c < head->ncpus; c++) { in uv_rtc_find_next_timer()
201 u64 exp = head->cpu[c].expires; in uv_rtc_find_next_timer()
208 head->next_cpu = bcpu; in uv_rtc_find_next_timer()
209 c = head->cpu[bcpu].lcpu; in uv_rtc_find_next_timer()
228 struct uv_rtc_timer_head *head = blade_info[bid]; in uv_rtc_set_timer() local
230 u64 *t = &head->cpu[bcpu].expires; in uv_rtc_set_timer()
234 spin_lock_irqsave(&head->lock, flags); in uv_rtc_set_timer()
236 next_cpu = head->next_cpu; in uv_rtc_set_timer()
241 expires < head->cpu[next_cpu].expires) { in uv_rtc_set_timer()
242 head->next_cpu = bcpu; in uv_rtc_set_timer()
245 uv_rtc_find_next_timer(head, pnode); in uv_rtc_set_timer()
246 spin_unlock_irqrestore(&head->lock, flags); in uv_rtc_set_timer()
251 spin_unlock_irqrestore(&head->lock, flags); in uv_rtc_set_timer()
264 struct uv_rtc_timer_head *head = blade_info[bid]; in uv_rtc_unset_timer() local
266 u64 *t = &head->cpu[bcpu].expires; in uv_rtc_unset_timer()
270 spin_lock_irqsave(&head->lock, flags); in uv_rtc_unset_timer()
272 if ((head->next_cpu == bcpu && uv_read_rtc(NULL) >= *t) || force) in uv_rtc_unset_timer()
278 if (head->next_cpu == bcpu) in uv_rtc_unset_timer()
279 uv_rtc_find_next_timer(head, pnode); in uv_rtc_unset_timer()
282 spin_unlock_irqrestore(&head->lock, flags); in uv_rtc_unset_timer()