diff options
Diffstat (limited to 'arch/powerpc/kernel/head_8xx.S')
-rw-r--r-- | arch/powerpc/kernel/head_8xx.S | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index 17158089833b..0bed748bbb85 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S | |||
@@ -498,7 +498,7 @@ DataTLBError: | |||
498 | mfspr r10, SPRN_DAR | 498 | mfspr r10, SPRN_DAR |
499 | cmpwi cr0, r10, 0x00f0 | 499 | cmpwi cr0, r10, 0x00f0 |
500 | beq- FixupDAR /* must be a buggy dcbX, icbi insn. */ | 500 | beq- FixupDAR /* must be a buggy dcbX, icbi insn. */ |
501 | DARFixed:/* Return from dcbx instruction bug workaround, r10 holds value of DAR */ | 501 | DARFixed:/* Return from dcbx instruction bug workaround */ |
502 | #ifdef CONFIG_8xx_CPU6 | 502 | #ifdef CONFIG_8xx_CPU6 |
503 | lwz r3, 8(r0) | 503 | lwz r3, 8(r0) |
504 | #endif | 504 | #endif |
@@ -527,7 +527,7 @@ DARFixed:/* Return from dcbx instruction bug workaround, r10 holds value of DAR | |||
527 | 527 | ||
528 | /* This is the procedure to calculate the data EA for buggy dcbx,dcbi instructions | 528 | /* This is the procedure to calculate the data EA for buggy dcbx,dcbi instructions |
529 | * by decoding the registers used by the dcbx instruction and adding them. | 529 | * by decoding the registers used by the dcbx instruction and adding them. |
530 | * DAR is set to the calculated address and r10 also holds the EA on exit. | 530 | * DAR is set to the calculated address. |
531 | */ | 531 | */ |
532 | /* define if you don't want to use self modifying code */ | 532 | /* define if you don't want to use self modifying code */ |
533 | #define NO_SELF_MODIFYING_CODE | 533 | #define NO_SELF_MODIFYING_CODE |
@@ -567,8 +567,7 @@ FixupDAR:/* Entry point for dcbx workaround. */ | |||
567 | beq+ 142f | 567 | beq+ 142f |
568 | cmpwi cr0, r10, 1964 /* Is icbi? */ | 568 | cmpwi cr0, r10, 1964 /* Is icbi? */ |
569 | beq+ 142f | 569 | beq+ 142f |
570 | 141: mfspr r10, SPRN_DAR /* r10 must hold DAR at exit */ | 570 | 141: b DARFixed /* Nope, go back to normal TLB processing */ |
571 | b DARFixed /* Nope, go back to normal TLB processing */ | ||
572 | 571 | ||
573 | 144: mfspr r10, SPRN_DSISR | 572 | 144: mfspr r10, SPRN_DSISR |
574 | rlwinm r10, r10,0,7,5 /* Clear store bit for buggy dcbst insn */ | 573 | rlwinm r10, r10,0,7,5 /* Clear store bit for buggy dcbst insn */ |