]> www.infradead.org Git - users/jedix/linux-maple.git/commit
arch/sparc: memblock resizes are not handled properly
authorPavel Tatashin <pasha.tatashin@oracle.com>
Wed, 8 Feb 2017 21:02:39 +0000 (16:02 -0500)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 6 Apr 2017 07:13:54 +0000 (00:13 -0700)
commit98bef0084952b8cbabed2a8e8913c331938e927f
treea23f2eaee334a0da881312db5ce726527b07aeea
parent24cb1be11b07f04df0c6373aae4e84603d03a326
arch/sparc: memblock resizes are not handled properly

In add_node_ranges() when memblock resize happens, the iterator keeps using
the previous freed array. This bug cause hangs on machine where there are
over 128 memory blocks during boot. For example, on machines where memory
interleaving is small.
The problem is seen on T4-4 because it cant have 2T of memory, and memory
is  interleaved at 8G. So we have 2T/8G = 256 regions to set node IDs. The
starting size of regions array is 128. Thus, we have to double at least one
time (actually we have to double twice because some memory is already
reserved and thus we need more than 256 regions). We start using an
incorrect pointer to the array after the first doubling.

Orabug: 25415396

Signed-off-by: Pavel Tatashin <pasha.tatashin@oracle.com>
Signed-off-by: Babu Moger <babu.moger@oracle.com>
Reviewed-by: Babu Moger <babu.moger@oracle.com>
Signed-off-by: Allen Pais <allen.pais@oracle.com>
arch/sparc/mm/init_64.c