[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 1/5] target/riscv: Check PMP rules num before propagation
From: |
LIU Zhiwei |
Subject: |
[PATCH v2 1/5] target/riscv: Check PMP rules num before propagation |
Date: |
Mon, 22 Nov 2021 19:02:26 +0800 |
When an address is in [0-4K) and no pmp rule configured, the tlb_size will
be set to 1.
This is caused by pmp_get_tlb_size return a value 1.
if (pmp_sa >= tlb_sa && pmp_ea <= tlb_ea) {
return pmp_ea - pmp_sa + 1;
}
Here pmp_sa == 0 and pmp_ea == 0.
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com>
---
target/riscv/pmp.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c
index 54abf42583..190ff59fab 100644
--- a/target/riscv/pmp.c
+++ b/target/riscv/pmp.c
@@ -627,6 +627,10 @@ bool pmp_is_range_in_tlb(CPURISCVState *env, hwaddr tlb_sa,
target_ulong val;
target_ulong tlb_ea = (tlb_sa + TARGET_PAGE_SIZE - 1);
+ if (pmp_get_num_rules(env) == 0) {
+ return false;
+ }
+
for (i = 0; i < MAX_RISCV_PMPS; i++) {
val = pmp_get_tlb_size(env, i, tlb_sa, tlb_ea);
if (val) {
--
2.25.1
- [PATCH v2 0/5] Check PMP rules num before propagation, LIU Zhiwei, 2021/11/22
- [PATCH v2 1/5] target/riscv: Check PMP rules num before propagation,
LIU Zhiwei <=
- [PATCH v2 2/5] target/riscv: Give a more generic size for tlb, LIU Zhiwei, 2021/11/22
- [PATCH v2 3/5] target/riscv: Discard return value for pmp_is_range_in_tlb, LIU Zhiwei, 2021/11/22
- [PATCH v2 4/5] target/riscv: Rename pmp_is_range_in_tlb, LIU Zhiwei, 2021/11/22
- [PATCH v2 5/5] target/riscv: Modify return and parameter type for pmp_adjust_tlb_size, LIU Zhiwei, 2021/11/22
- Re: [PATCH v2 0/5] Check PMP rules num before propagation, LIU Zhiwei, 2021/11/23