]> git.karo-electronics.de Git - karo-tx-linux.git/commit
SPARC64: Fix two kernel linear mapping setup bugs.
authorDavid Miller <davem@davemloft.net>
Thu, 20 Dec 2007 00:28:57 +0000 (16:28 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 6 Feb 2008 19:43:41 +0000 (11:43 -0800)
commit83f6ef15a3da00b409a334d688a1129f363fd7fc
treea8c862e56ba324dfd34fced92d0898a704fce4a8
parenta871dae86feab2232a297b649086ea46af60c7ac
SPARC64: Fix two kernel linear mapping setup bugs.

[SPARC64]: Fix two kernel linear mapping setup bugs.

[ Upstream commit: 8f361453d8e9a67c85b2cf9b93c642c2d8fe0462 ]

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/sparc64/kernel/entry.S
arch/sparc64/mm/init.c
include/asm-sparc64/hypervisor.h