Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc: powerpc/mm: Fix Respect _PAGE_COHERENT on classic ppc32 SW TLB load machines
This commit is contained in:
commit
b0dcb4a91d
|
@ -513,6 +513,9 @@ InstructionTLBMiss:
|
||||||
rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */
|
rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */
|
||||||
ori r1,r1,0xe04 /* clear out reserved bits */
|
ori r1,r1,0xe04 /* clear out reserved bits */
|
||||||
andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */
|
andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */
|
||||||
|
BEGIN_FTR_SECTION
|
||||||
|
rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */
|
||||||
|
END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
|
||||||
mtspr SPRN_RPA,r1
|
mtspr SPRN_RPA,r1
|
||||||
mfspr r3,SPRN_IMISS
|
mfspr r3,SPRN_IMISS
|
||||||
tlbli r3
|
tlbli r3
|
||||||
|
@ -587,6 +590,9 @@ DataLoadTLBMiss:
|
||||||
rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */
|
rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */
|
||||||
ori r1,r1,0xe04 /* clear out reserved bits */
|
ori r1,r1,0xe04 /* clear out reserved bits */
|
||||||
andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */
|
andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */
|
||||||
|
BEGIN_FTR_SECTION
|
||||||
|
rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */
|
||||||
|
END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
|
||||||
mtspr SPRN_RPA,r1
|
mtspr SPRN_RPA,r1
|
||||||
mfspr r3,SPRN_DMISS
|
mfspr r3,SPRN_DMISS
|
||||||
tlbld r3
|
tlbld r3
|
||||||
|
@ -655,6 +661,9 @@ DataStoreTLBMiss:
|
||||||
rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */
|
rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */
|
||||||
li r1,0xe05 /* clear out reserved bits & PP lsb */
|
li r1,0xe05 /* clear out reserved bits & PP lsb */
|
||||||
andc r1,r3,r1 /* PP = user? 2: 0 */
|
andc r1,r3,r1 /* PP = user? 2: 0 */
|
||||||
|
BEGIN_FTR_SECTION
|
||||||
|
rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */
|
||||||
|
END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
|
||||||
mtspr SPRN_RPA,r1
|
mtspr SPRN_RPA,r1
|
||||||
mfspr r3,SPRN_DMISS
|
mfspr r3,SPRN_DMISS
|
||||||
tlbld r3
|
tlbld r3
|
||||||
|
|
Loading…
Reference in New Issue