Lines Matching refs:pr

183 static int acpi_processor_hotadd_init(struct acpi_processor *pr)
189 if (invalid_phys_cpuid(pr->phys_id))
192 status = acpi_evaluate_integer(pr->handle, "_STA", NULL, &sta);
199 ret = acpi_map_cpu(pr->handle, pr->phys_id, pr->acpi_id, &pr->id);
203 ret = arch_register_cpu(pr->id);
205 acpi_unmap_cpu(pr->id);
214 pr_info("CPU%d has been hot-added\n", pr->id);
215 pr->flags.need_hotplug_init = 1;
223 static inline int acpi_processor_hotadd_init(struct acpi_processor *pr)
233 struct acpi_processor *pr = acpi_driver_data(device);
246 pr->flags.bm_control = 1;
255 status = acpi_evaluate_object(pr->handle, NULL, NULL, &buffer);
263 pr->acpi_id = object.processor.proc_id;
268 status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID,
277 pr->acpi_id = value;
280 if (acpi_duplicate_processor_id(pr->acpi_id)) {
281 if (pr->acpi_id == 0xff)
287 pr->acpi_id);
291 pr->phys_id = acpi_get_phys_id(pr->handle, device_declaration,
292 pr->acpi_id);
293 if (invalid_phys_cpuid(pr->phys_id))
294 acpi_handle_debug(pr->handle, "failed to get CPU physical ID.\n");
296 pr->id = acpi_map_cpuid(pr->phys_id, pr->acpi_id);
303 if (invalid_logical_cpuid(pr->id) && (num_online_cpus() == 1))
304 pr->id = 0;
315 if (invalid_logical_cpuid(pr->id) || !cpu_present(pr->id)) {
316 int ret = acpi_processor_hotadd_init(pr);
330 sprintf(acpi_device_bid(device), "CPU%X", pr->id);
331 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Processor [%d:%d]\n", pr->id,
332 pr->acpi_id));
340 pr->throttling.address = object.processor.pblk_address;
341 pr->throttling.duty_offset = acpi_gbl_FADT.duty_offset;
342 pr->throttling.duty_width = acpi_gbl_FADT.duty_width;
344 pr->pblk = object.processor.pblk_address;
352 status = acpi_evaluate_integer(pr->handle, "_SUN", NULL, &value);
354 arch_fix_phys_package_id(pr->id, value);
370 struct acpi_processor *pr;
374 pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL);
375 if (!pr)
378 if (!zalloc_cpumask_var(&pr->throttling.shared_cpu_map, GFP_KERNEL)) {
383 pr->handle = device->handle;
386 device->driver_data = pr;
392 BUG_ON(pr->id >= nr_cpu_ids);
399 if (per_cpu(processor_device_array, pr->id) != NULL &&
400 per_cpu(processor_device_array, pr->id) != device) {
403 pr->id);
411 per_cpu(processor_device_array, pr->id) = device;
412 per_cpu(processors, pr->id) = pr;
414 dev = get_cpu_device(pr->id);
424 pr->dev = dev;
434 free_cpumask_var(pr->throttling.shared_cpu_map);
436 per_cpu(processors, pr->id) = NULL;
438 kfree(pr);
449 struct acpi_processor *pr;
454 pr = acpi_driver_data(device);
455 if (pr->id >= nr_cpu_ids)
466 device_release_driver(pr->dev);
467 acpi_unbind_one(pr->dev);
470 per_cpu(processor_device_array, pr->id) = NULL;
471 per_cpu(processors, pr->id) = NULL;
477 arch_unregister_cpu(pr->id);
478 acpi_unmap_cpu(pr->id);
483 try_offline_node(cpu_to_node(pr->id));
486 free_cpumask_var(pr->throttling.shared_cpu_map);
487 kfree(pr);