Browse Source

[IA64] Avoid overflowing ia64_cpu_to_sapicid in acpi_map_lsapic()

acpi_map_lsapic tries to stuff a long into ia64_cpu_to_sapicid[],
which can only hold ints, so let's fix that.

We need to update the signature of acpi_map_cpu2node() too.

Signed-off-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Alex Chiang 17 năm trước cách đây
mục cha
commit
efc7508c9e
1 tập tin đã thay đổi với 2 bổ sung3 xóa
  1. 2 3
      arch/ia64/kernel/acpi.c

+ 2 - 3
arch/ia64/kernel/acpi.c

@@ -774,7 +774,7 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irq)
  */
  */
 #ifdef CONFIG_ACPI_HOTPLUG_CPU
 #ifdef CONFIG_ACPI_HOTPLUG_CPU
 static
 static
-int acpi_map_cpu2node(acpi_handle handle, int cpu, long physid)
+int acpi_map_cpu2node(acpi_handle handle, int cpu, int physid)
 {
 {
 #ifdef CONFIG_ACPI_NUMA
 #ifdef CONFIG_ACPI_NUMA
 	int pxm_id;
 	int pxm_id;
@@ -854,8 +854,7 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu)
 	union acpi_object *obj;
 	union acpi_object *obj;
 	struct acpi_madt_local_sapic *lsapic;
 	struct acpi_madt_local_sapic *lsapic;
 	cpumask_t tmp_map;
 	cpumask_t tmp_map;
-	long physid;
-	int cpu;
+	int cpu, physid;
 
 
 	if (ACPI_FAILURE(acpi_evaluate_object(handle, "_MAT", NULL, &buffer)))
 	if (ACPI_FAILURE(acpi_evaluate_object(handle, "_MAT", NULL, &buffer)))
 		return -EINVAL;
 		return -EINVAL;