[SPARC64]: Fix two kernel linear mapping setup bugs.
authorDavid S. Miller <davem@sunset.davemloft.net>
Thu, 13 Dec 2007 14:13:38 +0000 (06:13 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 13 Dec 2007 14:13:38 +0000 (06:13 -0800)
commit8f361453d8e9a67c85b2cf9b93c642c2d8fe0462
tree79c021106e2c3f708d085285680a29bb665c0b37
parentda8cadb31b82c9d41fc593c8deab6aa20b162d6b
[SPARC64]: Fix two kernel linear mapping setup bugs.

This was caught and identified by Greg Onufer.

Since we setup the 256M/4M bitmap table after taking over the trap
table, it's possible for some 4M mapping to get loaded in the TLB
beforhand which later will be 256M mappings.

This can cause illegal TLB multiple-match conditions.  Fix this by
setting up the bitmap before we take over the trap table.

Next, __flush_tlb_all() was not doing anything on hypervisor
platforms.  Fix by adding sun4v_mmu_demap_all() and calling it.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/entry.S
arch/sparc64/mm/init.c
include/asm-sparc64/hypervisor.h