[PATCH 1/6] 8xx: DTLB Error must check for more errors.
Benjamin Herrenschmidt
benh at kernel.crashing.org
Fri Oct 9 07:48:18 EST 2009
On Thu, 2009-10-08 at 15:24 +0200, Joakim Tjernlund wrote:
> DataTLBError currently does:
> if ((err & 0x02000000) == 0)
> DSI();
> This won't handle a store with no valid translation.
> Change this to
> if ((err & 0x48000000) != 0)
> DSI();
> that is, branch to DSI if either !permission or
> !translation.
> ---
As I said earlier, I don't think this is necessary, just get rid of the
whole bunch of code in DataTLBError :-)
Ben.
> arch/powerpc/kernel/head_8xx.S | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
> index 52ff8c5..118bb05 100644
> --- a/arch/powerpc/kernel/head_8xx.S
> +++ b/arch/powerpc/kernel/head_8xx.S
> @@ -472,8 +472,8 @@ DataTLBError:
> /* First, make sure this was a store operation.
> */
> mfspr r10, SPRN_DSISR
> - andis. r11, r10, 0x0200 /* If set, indicates store op */
> - beq 2f
> + andis. r11, r10, 0x4800 /* no translation, no permission. */
> + bne 2f /* branch if either is set */
>
> /* The EA of a data TLB miss is automatically stored in the MD_EPN
> * register. The EA of a data TLB error is automatically stored in
More information about the Linuxppc-dev
mailing list