Lines Matching refs:pcpu

57 struct pcpu {  struct
99 struct pcpu *cpu = container_of(dev, struct pcpu, dev); in show_online()
108 struct pcpu *pcpu = container_of(dev, struct pcpu, dev); in store_online() local
120 ret = xen_pcpu_down(pcpu->cpu_id); in store_online()
123 ret = xen_pcpu_up(pcpu->cpu_id); in store_online()
168 struct pcpu *pcpu) in pcpu_online_status() argument
171 !xen_pcpu_online(pcpu->flags)) { in pcpu_online_status()
173 pcpu->flags |= XEN_PCPU_FLAGS_ONLINE; in pcpu_online_status()
174 kobject_uevent(&pcpu->dev.kobj, KOBJ_ONLINE); in pcpu_online_status()
176 xen_pcpu_online(pcpu->flags)) { in pcpu_online_status()
178 pcpu->flags &= ~XEN_PCPU_FLAGS_ONLINE; in pcpu_online_status()
179 kobject_uevent(&pcpu->dev.kobj, KOBJ_OFFLINE); in pcpu_online_status()
183 static struct pcpu *get_pcpu(uint32_t cpu_id) in get_pcpu()
185 struct pcpu *pcpu; in get_pcpu() local
187 list_for_each_entry(pcpu, &xen_pcpus, list) { in get_pcpu()
188 if (pcpu->cpu_id == cpu_id) in get_pcpu()
189 return pcpu; in get_pcpu()
197 struct pcpu *pcpu = container_of(dev, struct pcpu, dev); in pcpu_release() local
199 list_del(&pcpu->list); in pcpu_release()
200 kfree(pcpu); in pcpu_release()
203 static void unregister_and_remove_pcpu(struct pcpu *pcpu) in unregister_and_remove_pcpu() argument
207 if (!pcpu) in unregister_and_remove_pcpu()
210 dev = &pcpu->dev; in unregister_and_remove_pcpu()
215 static int register_pcpu(struct pcpu *pcpu) in register_pcpu() argument
220 if (!pcpu) in register_pcpu()
223 dev = &pcpu->dev; in register_pcpu()
225 dev->id = pcpu->cpu_id; in register_pcpu()
238 static struct pcpu *create_and_register_pcpu(struct xenpf_pcpuinfo *info) in create_and_register_pcpu()
240 struct pcpu *pcpu; in create_and_register_pcpu() local
246 pcpu = kzalloc(sizeof(struct pcpu), GFP_KERNEL); in create_and_register_pcpu()
247 if (!pcpu) in create_and_register_pcpu()
250 INIT_LIST_HEAD(&pcpu->list); in create_and_register_pcpu()
251 pcpu->cpu_id = info->xen_cpuid; in create_and_register_pcpu()
252 pcpu->flags = info->flags; in create_and_register_pcpu()
255 list_add_tail(&pcpu->list, &xen_pcpus); in create_and_register_pcpu()
257 err = register_pcpu(pcpu); in create_and_register_pcpu()
263 return pcpu; in create_and_register_pcpu()
272 struct pcpu *pcpu = NULL; in sync_pcpu() local
288 pcpu = get_pcpu(cpu); in sync_pcpu()
294 unregister_and_remove_pcpu(pcpu); in sync_pcpu()
298 if (!pcpu) { in sync_pcpu()
299 pcpu = create_and_register_pcpu(info); in sync_pcpu()
300 if (IS_ERR_OR_NULL(pcpu)) in sync_pcpu()
303 pcpu_online_status(info, pcpu); in sync_pcpu()
318 struct pcpu *pcpu, *tmp; in xen_sync_pcpus() local
328 list_for_each_entry_safe(pcpu, tmp, &xen_pcpus, list) in xen_sync_pcpus()
329 unregister_and_remove_pcpu(pcpu); in xen_sync_pcpus()