diff options
Diffstat (limited to 'arch/x86/mm/srat.c')
| -rw-r--r-- | arch/x86/mm/srat.c | 15 | 
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/x86/mm/srat.c b/arch/x86/mm/srat.c index 4599c3e8bcb..4ddf497ca65 100644 --- a/arch/x86/mm/srat.c +++ b/arch/x86/mm/srat.c @@ -142,23 +142,23 @@ static inline int save_add_info(void) {return 0;}  #endif  /* Callback for parsing of the Proximity Domain <-> Memory Area mappings */ -void __init +int __init  acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma)  {  	u64 start, end;  	int node, pxm;  	if (srat_disabled()) -		return; +		return -1;  	if (ma->header.length != sizeof(struct acpi_srat_mem_affinity)) {  		bad_srat(); -		return; +		return -1;  	}  	if ((ma->flags & ACPI_SRAT_MEM_ENABLED) == 0) -		return; +		return -1;  	if ((ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE) && !save_add_info()) -		return; +		return -1;  	start = ma->base_address;  	end = start + ma->length;  	pxm = ma->proximity_domain; @@ -168,12 +168,12 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma)  	if (node < 0) {  		printk(KERN_ERR "SRAT: Too many proximity domains.\n");  		bad_srat(); -		return; +		return -1;  	}  	if (numa_add_memblk(node, start, end) < 0) {  		bad_srat(); -		return; +		return -1;  	}  	node_set(node, numa_nodes_parsed); @@ -181,6 +181,7 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma)  	printk(KERN_INFO "SRAT: Node %u PXM %u [mem %#010Lx-%#010Lx]\n",  	       node, pxm,  	       (unsigned long long) start, (unsigned long long) end - 1); +	return 0;  }  void __init acpi_numa_arch_fixup(void) {}  |