Message ID | 20190311191602.25796-9-svens@stackframe.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/hppa patches | expand |
On 3/11/19 12:15 PM, Sven Schnelle wrote: > The ODE software calls itlbp on existing TLB entries without > calling itlba first, so this seems to be valid. > > Signed-off-by: Sven Schnelle <svens@stackframe.org> > --- > target/hppa/mem_helper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c > index 26da953185..fc1b6a4fcd 100644 > --- a/target/hppa/mem_helper.c > +++ b/target/hppa/mem_helper.c > @@ -277,7 +277,7 @@ void HELPER(itlbp)(CPUHPPAState *env, target_ulong addr, target_ureg reg) > { > hppa_tlb_entry *ent = hppa_find_tlb(env, addr); > > - if (unlikely(ent == NULL || ent->entry_valid)) { > + if (unlikely(ent == NULL)) { > qemu_log_mask(LOG_GUEST_ERROR, "ITLBP not following ITLBA\n"); > return; > } > Hmm. Do you have a broader context for this? Like maybe the software has just flushed the entire TLB? If the entry is valid, and we're not relaxing permissions, then we might need to flush the softtlb page as well. r~
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c index 26da953185..fc1b6a4fcd 100644 --- a/target/hppa/mem_helper.c +++ b/target/hppa/mem_helper.c @@ -277,7 +277,7 @@ void HELPER(itlbp)(CPUHPPAState *env, target_ulong addr, target_ureg reg) { hppa_tlb_entry *ent = hppa_find_tlb(env, addr); - if (unlikely(ent == NULL || ent->entry_valid)) { + if (unlikely(ent == NULL)) { qemu_log_mask(LOG_GUEST_ERROR, "ITLBP not following ITLBA\n"); return; }
The ODE software calls itlbp on existing TLB entries without calling itlba first, so this seems to be valid. Signed-off-by: Sven Schnelle <svens@stackframe.org> --- target/hppa/mem_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)