x86-64, NUMA: Don't call __pa() with invalid address in numa_reset_distance()
Do not call __pa(numa_distance) if it was not allocated before. Calling with invalid address triggers VIRTUAL_BUG_ON() in __phys_addr() if CONFIG_DEBUG_VIRTUAL. Also reported by Ingo. http://thread.gmane.org/gmane.linux.kernel/1101306/focus=1101785 - v2: Change to check existing path as tj requested. - tj: Description update. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
e23bba6044
commit
2ca230baeb
|
@ -371,11 +371,13 @@ static void __init numa_reset_distance(void)
|
||||||
{
|
{
|
||||||
size_t size;
|
size_t size;
|
||||||
|
|
||||||
size = numa_distance_cnt * sizeof(numa_distance[0]);
|
if (numa_distance_cnt) {
|
||||||
memblock_x86_free_range(__pa(numa_distance),
|
size = numa_distance_cnt * sizeof(numa_distance[0]);
|
||||||
__pa(numa_distance) + size);
|
memblock_x86_free_range(__pa(numa_distance),
|
||||||
|
__pa(numa_distance) + size);
|
||||||
|
numa_distance_cnt = 0;
|
||||||
|
}
|
||||||
numa_distance = NULL;
|
numa_distance = NULL;
|
||||||
numa_distance_cnt = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue