sparc64: Fix definition of VMEMMAP_SIZE.
commitbcb7797d596b725c2b6b11f24b9254385297261f
authorDavid S. Miller <davem@davemloft.net>
Tue, 24 Nov 2009 00:38:56 +0000 (23 16:38 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 18 Dec 2009 21:43:59 +0000 (18 13:43 -0800)
tree5e0375a423ab8b9d7697b48971701c49d2307d0e
parenta5ad94d1e45df0cc29918fb5309ef85b99fc58c5
sparc64: Fix definition of VMEMMAP_SIZE.

[ Upstream commit bffbc94a4d2c1769c3826fceddd2dbb75e72c80b ]

This was the cause of various boot failures on V480, V880, etc.
systems.

Kernel image memory was being overwritten because the vmemmap[]
array was being sized to small.  So if you had physical memory
addresses past a certain point, the early bootup would spam
all over variables in the kernel data section.

The vmemmap mappings map page structs, not page struct pointers.
And that was the key thinko in the macro definition.

This was fixable thanks to the help, reports, and tireless patience
of Hermann Lauer.

Reported-by: Hermann Lauer <Hermann.Lauer@iwr.uni-heidelberg.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/sparc/mm/init_64.h