diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-04-14 18:32:04 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-04-26 23:02:14 -0400 |
commit | 1a51dde139d5305b2592c716c50c005d6ab9624b (patch) | |
tree | c3dd4bf78fb8137f8da2954cc39345c28635966c /arch/powerpc | |
parent | ca1769f7a372898f5e3dbb8e4ff53f53f0626ef4 (diff) |
powerpc/book3e: Use way 3 for linear mapping bolted entry
An erratum on A2 can lead to the bolted entry we insert for the linear
mapping being evicted, to avoid that write the bolted entry to way 3.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/kernel/exceptions-64e.S | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S index 9651acc3504a..8fe0fc233f02 100644 --- a/arch/powerpc/kernel/exceptions-64e.S +++ b/arch/powerpc/kernel/exceptions-64e.S | |||
@@ -864,8 +864,9 @@ have_hes: | |||
864 | * that will have to be made dependent on whether we are running under | 864 | * that will have to be made dependent on whether we are running under |
865 | * a hypervisor I suppose. | 865 | * a hypervisor I suppose. |
866 | */ | 866 | */ |
867 | ori r3,r3,MAS0_HES | MAS0_WQ_ALLWAYS | 867 | ori r11,r3,MAS0_WQ_ALLWAYS |
868 | mtspr SPRN_MAS0,r3 | 868 | oris r11,r11,MAS0_ESEL(3)@h /* Use way 3: workaround A2 erratum 376 */ |
869 | mtspr SPRN_MAS0,r11 | ||
869 | lis r3,(MAS1_VALID | MAS1_IPROT)@h | 870 | lis r3,(MAS1_VALID | MAS1_IPROT)@h |
870 | ori r3,r3,BOOK3E_PAGESZ_1GB << MAS1_TSIZE_SHIFT | 871 | ori r3,r3,BOOK3E_PAGESZ_1GB << MAS1_TSIZE_SHIFT |
871 | mtspr SPRN_MAS1,r3 | 872 | mtspr SPRN_MAS1,r3 |