mm/memblock.c: fix NULL dereference error
It causes NULL dereference error and failure to get type_a->regions[0] info if parameter type_b of __next_mem_range_rev() == NULL Fix this by checking before dereferring and initializing idx_b to 0 The approach is tested by dumping all types of region via __memblock_dump_all() and __next_mem_range_rev() fixed to UART separately the result is okay after checking the logs. Link: http://lkml.kernel.org/r/57A0320D.6070102@zoho.com Signed-off-by: zijun_hu <zijun_hu@htc.com> Tested-by: zijun_hu <zijun_hu@htc.com> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
4b16b0c0bf
Коммит
e47608ab6d
|
@ -994,7 +994,10 @@ void __init_memblock __next_mem_range_rev(u64 *idx, int nid, ulong flags,
|
|||
|
||||
if (*idx == (u64)ULLONG_MAX) {
|
||||
idx_a = type_a->cnt - 1;
|
||||
idx_b = type_b->cnt;
|
||||
if (type_b != NULL)
|
||||
idx_b = type_b->cnt;
|
||||
else
|
||||
idx_b = 0;
|
||||
}
|
||||
|
||||
for (; idx_a >= 0; idx_a--) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче