From: Ahmed Karaman <ahmedkhaledkaraman@gmail.com>
To: qemu-devel@nongnu.org, rth@twiddle.net, ysato@users.sourceforge.jp
Cc: Ahmed Karaman <ahmedkhaledkaraman@gmail.com>,
aleksandar.qemu.devel@gmail.com, alex.bennee@linaro.org,
stefanha@redhat.com
Subject: [PATCH v2 1/1] target/rx: Check for page crossings in use_goto_tb()
Date: Sun, 31 May 2020 15:45:12 +0200 [thread overview]
Message-ID: <20200531134512.7923-2-ahmedkhaledkaraman@gmail.com> (raw)
In-Reply-To: <20200531134512.7923-1-ahmedkhaledkaraman@gmail.com>
Add the page crossings check in use_goto_tb(). If this check is not
applied, a number of bugs may occasionally occur during target rx
system mode emulation.
Also, this check is needed in user mode related to emulation of system
call mmap(). rx target does not currently support user mode, but it is
better to prepare use_goto_tb() in that sense in advance.
Rename parameter dc of type DisasContext* to the more common name ctx,
to keep consistency with other targets.
Add detailed comments.
Buglink: https://bugs.launchpad.net/qemu/+bug/1880763
Signed-off-by: Ahmed Karaman <ahmedkhaledkaraman@gmail.com>
---
target/rx/translate.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/target/rx/translate.c b/target/rx/translate.c
index 61e86653a4..85a884c7dd 100644
--- a/target/rx/translate.c
+++ b/target/rx/translate.c
@@ -143,12 +143,15 @@ void rx_cpu_dump_state(CPUState *cs, FILE *f, int flags)
}
}
-static bool use_goto_tb(DisasContext *dc, target_ulong dest)
+static bool use_goto_tb(DisasContext *ctx, target_ulong dest)
{
- if (unlikely(dc->base.singlestep_enabled)) {
+ /* No direct translation block linking in singlestep */
+ if (unlikely(ctx->base.singlestep_enabled)) {
return false;
} else {
- return true;
+ /* Directly link translation blocks only within the same guest page */
+ return (ctx->base.tb->pc & TARGET_PAGE_MASK) ==
+ (dest & TARGET_PAGE_MASK);
}
}
--
2.17.1
next prev parent reply other threads:[~2020-05-31 13:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-31 13:45 [PATCH v2 0/1] Check for page crossings in use_goto_tb() for rx target Ahmed Karaman
2020-05-31 13:45 ` Ahmed Karaman [this message]
2020-06-01 22:19 ` [PATCH v2 1/1] target/rx: Check for page crossings in use_goto_tb() Richard Henderson
2020-06-24 11:46 ` Aleksandar Markovic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200531134512.7923-2-ahmedkhaledkaraman@gmail.com \
--to=ahmedkhaledkaraman@gmail.com \
--cc=aleksandar.qemu.devel@gmail.com \
--cc=alex.bennee@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=stefanha@redhat.com \
--cc=ysato@users.sourceforge.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).