[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 40/48] target/ppc: Remove type argument from check_prot
From: |
David Gibson |
Subject: |
[PULL 40/48] target/ppc: Remove type argument from check_prot |
Date: |
Wed, 19 May 2021 22:51:40 +1000 |
From: Richard Henderson <richard.henderson@linaro.org>
We can now use MMU_INST_FETCH from access_type for this.
Use prot_for_access_type to simplify everything.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20210518201146.794854-8-richard.henderson@linaro.org>
[dwg: Remove a stray trailing whitespace]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
target/ppc/mmu_helper.c | 33 ++++++---------------------------
1 file changed, 6 insertions(+), 27 deletions(-)
diff --git a/target/ppc/mmu_helper.c b/target/ppc/mmu_helper.c
index 2aa1b777de..2c813af924 100644
--- a/target/ppc/mmu_helper.c
+++ b/target/ppc/mmu_helper.c
@@ -32,6 +32,7 @@
#include "qemu/error-report.h"
#include "qemu/main-loop.h"
#include "qemu/qemu-print.h"
+#include "internal.h"
#include "mmu-book3s-v3.h"
#include "mmu-radix64.h"
@@ -126,31 +127,9 @@ static int pp_check(int key, int pp, int nx)
return access;
}
-static int check_prot(int prot, MMUAccessType access_type, int type)
+static int check_prot(int prot, MMUAccessType access_type)
{
- int ret;
-
- if (type == ACCESS_CODE) {
- if (prot & PAGE_EXEC) {
- ret = 0;
- } else {
- ret = -2;
- }
- } else if (access_type == MMU_DATA_STORE) {
- if (prot & PAGE_WRITE) {
- ret = 0;
- } else {
- ret = -2;
- }
- } else {
- if (prot & PAGE_READ) {
- ret = 0;
- } else {
- ret = -2;
- }
- }
-
- return ret;
+ return prot & prot_for_access_type(access_type) ? 0 : -2;
}
static int ppc6xx_tlb_pte_check(mmu_ctx_t *ctx, target_ulong pte0,
@@ -182,7 +161,7 @@ static int ppc6xx_tlb_pte_check(mmu_ctx_t *ctx,
target_ulong pte0,
/* Keep the matching PTE information */
ctx->raddr = pte1;
ctx->prot = access;
- ret = check_prot(ctx->prot, access_type, type);
+ ret = check_prot(ctx->prot, access_type);
if (ret == 0) {
/* Access granted */
qemu_log_mask(CPU_LOG_MMU, "PTE access granted !\n");
@@ -441,7 +420,7 @@ static int get_bat_6xx_tlb(CPUPPCState *env, mmu_ctx_t *ctx,
(virtual & 0x0001F000);
/* Compute access rights */
ctx->prot = prot;
- ret = check_prot(ctx->prot, access_type, type);
+ ret = check_prot(ctx->prot, access_type);
if (ret == 0) {
LOG_BATS("BAT %d match: r " TARGET_FMT_plx " prot=%c%c\n",
i, ctx->raddr, ctx->prot & PAGE_READ ? 'R' : '-',
@@ -733,7 +712,7 @@ static int mmu40x_get_physical_address(CPUPPCState *env,
mmu_ctx_t *ctx,
check_perms:
/* Check from TLB entry */
ctx->prot = tlb->prot;
- ret = check_prot(ctx->prot, access_type, type);
+ ret = check_prot(ctx->prot, access_type);
if (ret == -2) {
env->spr[SPR_40x_ESR] = 0;
}
--
2.31.1
- [PULL 34/48] target/ppc: Introduce prot_for_access_type, (continued)
- [PULL 34/48] target/ppc: Introduce prot_for_access_type, David Gibson, 2021/05/19
- [PULL 29/48] target/ppc: Move single-step check to ppc_tr_tb_stop, David Gibson, 2021/05/19
- [PULL 31/48] target/ppc: Mark helper_raise_exception* as noreturn, David Gibson, 2021/05/19
- [PULL 41/48] target/ppc: Remove type argument from ppc6xx_tlb_pte_check, David Gibson, 2021/05/19
- [PULL 33/48] target/ppc: Fix load endianness for lxvwsx/lxvdsx, David Gibson, 2021/05/19
- [PULL 38/48] target/ppc: Rename access_type to type in mmu_helper.c, David Gibson, 2021/05/19
- [PULL 37/48] target/ppc: Use MMUAccessType in mmu-hash32.c, David Gibson, 2021/05/19
- [PULL 39/48] target/ppc: Use MMUAccessType in mmu_helper.c, David Gibson, 2021/05/19
- [PULL 35/48] target/ppc: Use MMUAccessType in mmu-radix64.c, David Gibson, 2021/05/19
- [PULL 36/48] target/ppc: Use MMUAccessType in mmu-hash64.c, David Gibson, 2021/05/19
- [PULL 40/48] target/ppc: Remove type argument from check_prot,
David Gibson <=
- [PULL 44/48] target/ppc: Remove type argument from mmu40x_get_physical_address, David Gibson, 2021/05/19
- [PULL 45/48] target/ppc: Remove type argument from mmubooke_check_tlb, David Gibson, 2021/05/19
- [PULL 42/48] target/ppc: Remove type argument from ppc6xx_tlb_check, David Gibson, 2021/05/19
- [PULL 43/48] target/ppc: Remove type argument from get_bat_6xx_tlb, David Gibson, 2021/05/19
- [PULL 46/48] target/ppc: Remove type argument from mmubooke_get_physical_address, David Gibson, 2021/05/19
- [PULL 47/48] target/ppc: Remove type argument from mmubooke206_check_tlb, David Gibson, 2021/05/19
- [PULL 48/48] target/ppc: Remove type argument for mmubooke206_get_physical_address, David Gibson, 2021/05/19
- Re: [PULL 00/48] ppc-for-6.1 queue 20210519, no-reply, 2021/05/19
- Re: [PULL 00/48] ppc-for-6.1 queue 20210519, Peter Maydell, 2021/05/20