Lines Matching refs:pcpu
60 struct pcpu { struct
103 struct pcpu *cpu = container_of(dev, struct pcpu, dev); in online_show()
112 struct pcpu *pcpu = container_of(dev, struct pcpu, dev); in online_store() local
124 ret = xen_pcpu_down(pcpu->cpu_id); in online_store()
127 ret = xen_pcpu_up(pcpu->cpu_id); in online_store()
172 struct pcpu *pcpu) in pcpu_online_status() argument
175 !xen_pcpu_online(pcpu->flags)) { in pcpu_online_status()
177 pcpu->flags |= XEN_PCPU_FLAGS_ONLINE; in pcpu_online_status()
178 kobject_uevent(&pcpu->dev.kobj, KOBJ_ONLINE); in pcpu_online_status()
180 xen_pcpu_online(pcpu->flags)) { in pcpu_online_status()
182 pcpu->flags &= ~XEN_PCPU_FLAGS_ONLINE; in pcpu_online_status()
183 kobject_uevent(&pcpu->dev.kobj, KOBJ_OFFLINE); in pcpu_online_status()
187 static struct pcpu *get_pcpu(uint32_t cpu_id) in get_pcpu()
189 struct pcpu *pcpu; in get_pcpu() local
191 list_for_each_entry(pcpu, &xen_pcpus, list) { in get_pcpu()
192 if (pcpu->cpu_id == cpu_id) in get_pcpu()
193 return pcpu; in get_pcpu()
201 struct pcpu *pcpu = container_of(dev, struct pcpu, dev); in pcpu_release() local
203 list_del(&pcpu->list); in pcpu_release()
204 kfree(pcpu); in pcpu_release()
207 static void unregister_and_remove_pcpu(struct pcpu *pcpu) in unregister_and_remove_pcpu() argument
211 if (!pcpu) in unregister_and_remove_pcpu()
214 dev = &pcpu->dev; in unregister_and_remove_pcpu()
219 static int register_pcpu(struct pcpu *pcpu) in register_pcpu() argument
224 if (!pcpu) in register_pcpu()
227 dev = &pcpu->dev; in register_pcpu()
229 dev->id = pcpu->cpu_id; in register_pcpu()
242 static struct pcpu *create_and_register_pcpu(struct xenpf_pcpuinfo *info) in create_and_register_pcpu()
244 struct pcpu *pcpu; in create_and_register_pcpu() local
250 pcpu = kzalloc(sizeof(struct pcpu), GFP_KERNEL); in create_and_register_pcpu()
251 if (!pcpu) in create_and_register_pcpu()
254 INIT_LIST_HEAD(&pcpu->list); in create_and_register_pcpu()
255 pcpu->cpu_id = info->xen_cpuid; in create_and_register_pcpu()
256 pcpu->acpi_id = info->acpi_id; in create_and_register_pcpu()
257 pcpu->flags = info->flags; in create_and_register_pcpu()
260 list_add_tail(&pcpu->list, &xen_pcpus); in create_and_register_pcpu()
262 err = register_pcpu(pcpu); in create_and_register_pcpu()
268 return pcpu; in create_and_register_pcpu()
277 struct pcpu *pcpu = NULL; in sync_pcpu() local
293 pcpu = get_pcpu(cpu); in sync_pcpu()
299 unregister_and_remove_pcpu(pcpu); in sync_pcpu()
303 if (!pcpu) { in sync_pcpu()
304 pcpu = create_and_register_pcpu(info); in sync_pcpu()
305 if (IS_ERR_OR_NULL(pcpu)) in sync_pcpu()
308 pcpu_online_status(info, pcpu); in sync_pcpu()
323 struct pcpu *pcpu, *tmp; in xen_sync_pcpus() local
333 list_for_each_entry_safe(pcpu, tmp, &xen_pcpus, list) in xen_sync_pcpus()
334 unregister_and_remove_pcpu(pcpu); in xen_sync_pcpus()
393 const struct pcpu *pcpu; in xen_processor_present() local
397 list_for_each_entry(pcpu, &xen_pcpus, list) in xen_processor_present()
398 if (pcpu->acpi_id == acpi_id) { in xen_processor_present()
399 online = pcpu->flags & XEN_PCPU_FLAGS_ONLINE; in xen_processor_present()