Commit 4d6a0680 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by David Gibson
Browse files

ppc: Do not take exceptions on unknown SPRs in privileged mode



The architecture specifies that mtspr/mfspr on an unknown SPR number
should act as a nop in privileged mode.

I haven't removed the warning however as it can be useful for
diagnosing.

Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent c76c22d5
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -4351,9 +4351,12 @@ static inline void gen_op_mfspr(DisasContext *ctx)
            qemu_log("Trying to read invalid spr %d (0x%03x) at "
                     TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4);
        }
        /* Only generate an exception in user space, otherwise this is a nop */
        if (ctx->pr) {
            gen_inval_exception(ctx, POWERPC_EXCP_INVAL_SPR);
        }
    }
}

static void gen_mfspr(DisasContext *ctx)
{
@@ -4503,9 +4506,13 @@ static void gen_mtspr(DisasContext *ctx)
        }
        fprintf(stderr, "Trying to write invalid spr %d (0x%03x) at "
                TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4);

        /* Only generate an exception in user space, otherwise this is a nop */
        if (ctx->pr) {
            gen_inval_exception(ctx, POWERPC_EXCP_INVAL_SPR);
        }
    }
}

/***                         Cache management                              ***/