• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/kernel/

Lines Matching refs:data

102 static void csd_lock_wait(struct call_single_data *data)
104 while (data->flags & CSD_FLAG_LOCK)
108 static void csd_lock(struct call_single_data *data)
110 csd_lock_wait(data);
111 data->flags = CSD_FLAG_LOCK;
121 static void csd_unlock(struct call_single_data *data)
123 WARN_ON(!(data->flags & CSD_FLAG_LOCK));
126 * ensure we're all done before releasing data:
130 data->flags &= ~CSD_FLAG_LOCK;
135 * for execution on the given CPU. data must already have
139 void generic_exec_single(int cpu, struct call_single_data *data, int wait)
147 list_add_tail(&data->list, &dst->list);
165 csd_lock_wait(data);
174 struct call_function_data *data;
194 list_for_each_entry_rcu(data, &call_function.queue, csd.list) {
207 if (!cpumask_test_cpu(cpu, data->cpumask))
212 if (atomic_read(&data->refs) == 0)
215 if (!cpumask_test_and_clear_cpu(cpu, data->cpumask))
218 data->csd.func(data->csd.info);
220 refs = atomic_dec_return(&data->refs);
223 WARN_ON(!cpumask_empty(data->cpumask));
226 list_del_rcu(&data->csd.list);
233 csd_unlock(&data->csd);
258 struct call_single_data *data;
260 data = list_entry(list.next, struct call_single_data, list);
261 list_del(&data->list);
264 * 'data' can be invalid after this call if flags == 0
268 data_flags = data->flags;
270 data->func(data->info);
276 csd_unlock(data);
321 struct call_single_data *data = &d;
324 data = &__get_cpu_var(csd_data);
326 csd_lock(data);
328 data->func = func;
329 data->info = info;
330 generic_exec_single(cpu, data, wait);
390 * @data: Pre-allocated and setup data structure
394 * pre-allocated data structure. Useful for embedding @data inside
397 void __smp_call_function_single(int cpu, struct call_single_data *data,
415 data->func(data->info);
418 csd_lock(data);
419 generic_exec_single(cpu, data, wait);
441 struct call_function_data *data;
474 data = &__get_cpu_var(cfd_data);
475 csd_lock(&data->csd);
476 BUG_ON(atomic_read(&data->refs) || !cpumask_empty(data->cpumask));
478 data->csd.func = func;
479 data->csd.info = info;
480 cpumask_and(data->cpumask, mask, cpu_online_mask);
481 cpumask_clear_cpu(this_cpu, data->cpumask);
491 atomic_set(&data->refs, cpumask_weight(data->cpumask));
499 list_add_rcu(&data->csd.list, &call_function.queue);
510 arch_send_call_function_ipi_mask(data->cpumask);
514 csd_lock_wait(&data->csd);