spapr: Split memory nodes to power-of-two blocks
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Thu, 3 Jul 2014 03:10:05 +0000 (13:10 +1000)
committerAlexander Graf <agraf@suse.de>
Mon, 8 Sep 2014 10:50:48 +0000 (12:50 +0200)
commit6010818c30ce9c796b4e22fd261fc6fea1cecbfc
tree318759fe52ae9d9290e40c7117f968007e234b5b
parent7db8a127e373e468d1f61e46e01e50d1aa33e827
spapr: Split memory nodes to power-of-two blocks

Linux kernel expects nodes to have power-of-two size and
does WARN_ON if this is not the case:
[    0.041456] WARNING: at drivers/base/memory.c:115
which is:

===
/* Validate blk_sz is a power of 2 and not less than section size */
if ((block_sz & (block_sz - 1)) || (block_sz < MIN_MEMORY_BLOCK_SIZE)) {
         WARN_ON(1);
        block_sz = MIN_MEMORY_BLOCK_SIZE;
}
===

This splits memory nodes into set of smaller blocks with
a size which is a power of two. This makes sure the start
address of every node is aligned to the node size.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
[agraf: squash windows compile fix in]
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/ppc/spapr.c