diff options
Diffstat (limited to 'arch/ia64/kernel/acpi.c')
| -rw-r--r-- | arch/ia64/kernel/acpi.c | 21 | 
1 files changed, 17 insertions, 4 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index c7467f863c7..43687cc60df 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c @@ -117,7 +117,10 @@ acpi_get_sysname(void)  	if (!strcmp(hdr->oem_id, "HP")) {  		return "hpzx1";  	} else if (!strcmp(hdr->oem_id, "SGI")) { -		return "sn2"; +		if (!strcmp(hdr->oem_table_id + 4, "UV")) +			return "uv"; +		else +			return "sn2";  	}  	return "dig"; @@ -130,6 +133,8 @@ acpi_get_sysname(void)  	return "hpzx1_swiotlb";  # elif defined (CONFIG_IA64_SGI_SN2)  	return "sn2"; +# elif defined (CONFIG_IA64_SGI_UV) +	return "uv";  # elif defined (CONFIG_IA64_DIG)  	return "dig";  # else @@ -460,7 +465,6 @@ void __init acpi_numa_slit_init(struct acpi_table_slit *slit)  		printk(KERN_ERR  		       "ACPI 2.0 SLIT: size mismatch: %d expected, %d actual\n",  		       len, slit->header.length); -		memset(numa_slit, 10, sizeof(numa_slit));  		return;  	}  	slit_table = slit; @@ -569,8 +573,14 @@ void __init acpi_numa_arch_fixup(void)  	printk(KERN_INFO "Number of memory chunks in system = %d\n",  	       num_node_memblks); -	if (!slit_table) +	if (!slit_table) { +		for (i = 0; i < MAX_NUMNODES; i++) +			for (j = 0; j < MAX_NUMNODES; j++) +				node_distance(i, j) = i == j ? LOCAL_DISTANCE : +							REMOTE_DISTANCE;  		return; +	} +  	memset(numa_slit, -1, sizeof(numa_slit));  	for (i = 0; i < slit_table->locality_count; i++) {  		if (!pxm_bit_test(i)) @@ -622,6 +632,9 @@ void acpi_unregister_gsi(u32 gsi)  	if (acpi_irq_model == ACPI_IRQ_MODEL_PLATFORM)  		return; +	if (has_8259 && gsi < 16) +		return; +  	iosapic_unregister_intr(gsi);  } @@ -966,7 +979,7 @@ acpi_map_iosapics (void)  fs_initcall(acpi_map_iosapics);  #endif				/* CONFIG_ACPI_NUMA */ -int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base) +int __ref acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base)  {  	int err;  |