diff options
Diffstat (limited to 'drivers/acpi/acpi_processor.c')
| -rw-r--r-- | drivers/acpi/acpi_processor.c | 25 | 
1 files changed, 14 insertions, 11 deletions
diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c index 1fdf5e07a1c7..1020b1b53a17 100644 --- a/drivers/acpi/acpi_processor.c +++ b/drivers/acpi/acpi_processor.c @@ -170,7 +170,7 @@ static int acpi_processor_hotadd_init(struct acpi_processor *pr)  	acpi_status status;  	int ret; -	if (pr->apic_id == -1) +	if (pr->phys_id == -1)  		return -ENODEV;  	status = acpi_evaluate_integer(pr->handle, "_STA", NULL, &sta); @@ -180,13 +180,13 @@ static int acpi_processor_hotadd_init(struct acpi_processor *pr)  	cpu_maps_update_begin();  	cpu_hotplug_begin(); -	ret = acpi_map_lsapic(pr->handle, pr->apic_id, &pr->id); +	ret = acpi_map_cpu(pr->handle, pr->phys_id, &pr->id);  	if (ret)  		goto out;  	ret = arch_register_cpu(pr->id);  	if (ret) { -		acpi_unmap_lsapic(pr->id); +		acpi_unmap_cpu(pr->id);  		goto out;  	} @@ -215,7 +215,7 @@ static int acpi_processor_get_info(struct acpi_device *device)  	union acpi_object object = { 0 };  	struct acpi_buffer buffer = { sizeof(union acpi_object), &object };  	struct acpi_processor *pr = acpi_driver_data(device); -	int apic_id, cpu_index, device_declaration = 0; +	int phys_id, cpu_index, device_declaration = 0;  	acpi_status status = AE_OK;  	static int cpu0_initialized;  	unsigned long long value; @@ -262,15 +262,18 @@ static int acpi_processor_get_info(struct acpi_device *device)  		pr->acpi_id = value;  	} -	apic_id = acpi_get_apicid(pr->handle, device_declaration, pr->acpi_id); -	if (apic_id < 0) -		acpi_handle_debug(pr->handle, "failed to get CPU APIC ID.\n"); -	pr->apic_id = apic_id; +	phys_id = acpi_get_phys_id(pr->handle, device_declaration, pr->acpi_id); +	if (phys_id < 0) +		acpi_handle_debug(pr->handle, "failed to get CPU physical ID.\n"); +	pr->phys_id = phys_id; -	cpu_index = acpi_map_cpuid(pr->apic_id, pr->acpi_id); +	cpu_index = acpi_map_cpuid(pr->phys_id, pr->acpi_id);  	if (!cpu0_initialized && !acpi_has_cpu_in_madt()) {  		cpu0_initialized = 1; -		/* Handle UP system running SMP kernel, with no LAPIC in MADT */ +		/* +		 * Handle UP system running SMP kernel, with no CPU +		 * entry in MADT +		 */  		if ((cpu_index == -1) && (num_online_cpus() == 1))  			cpu_index = 0;  	} @@ -458,7 +461,7 @@ static void acpi_processor_remove(struct acpi_device *device)  	/* Remove the CPU. */  	arch_unregister_cpu(pr->id); -	acpi_unmap_lsapic(pr->id); +	acpi_unmap_cpu(pr->id);  	cpu_hotplug_done();  	cpu_maps_update_done();  | 
