[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] PING Re: [PATCH v3] target-i386: Fix segment cache dump
From: |
Tobias Markus |
Subject: |
[Qemu-devel] PING Re: [PATCH v3] target-i386: Fix segment cache dump |
Date: |
Fri, 13 Sep 2013 16:21:44 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130806 Thunderbird/17.0.8 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
PING
(Mail resent - sorry, Thunderbird wrapped line in the first mail)
PS: Sorry for the two wrapped lines below ---, but probably not worth
resending the patch just for that.
On 08/25/2013 12:20 PM, Tobias Markus wrote:
> When in Long Mode, cpu_x86_seg_cache() logs "DS16" because the Default
> operation size bit (D/B bit) is not set for Long Mode Data Segments since
> there are only Data Segments in Long Mode and no explicit 16/32/64-bit
> Descriptors.
> This patch fixes this by checking the Long Mode Active bit of the hidden
> flags variable and logging "DS" if it is set. (I.e. in Long Mode all Data
> Segments are logged as "DS")
>
> Signed-off-by: Tobias Markus <address@hidden>
> ---
> v3: * Manually Break Lines
> * Again change line wrapping as suggested by Eric Blake
> v2: * Fix line wrapping as suggested in IRC
> * Break the line
> Note that alternatively, Data Segments in Long Mode could be logged as "DS64"
> to avoid confusion about the missing 64 postfix. (But that would be, strictly
> speaking, wrong because there are only DSs and no DS16/32/64 in Long Mode.)
> PS: This is my first contribution to an Open Source Project and I would be
> very happy about constructive feedback, especially about possible wrong line
> wrapping.
> target-i386/helper.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/target-i386/helper.c b/target-i386/helper.c
> index bf3e2ac..0edb93b 100644
> --- a/target-i386/helper.c
> +++ b/target-i386/helper.c
> @@ -147,7 +147,9 @@ cpu_x86_dump_seg_cache(CPUX86State *env, FILE *f,
> fprintf_function cpu_fprintf,
> cpu_fprintf(f, " [%c%c", (sc->flags & DESC_C_MASK) ? 'C' : '-',
> (sc->flags & DESC_R_MASK) ? 'R' : '-');
> } else {
> - cpu_fprintf(f, (sc->flags & DESC_B_MASK) ? "DS " : "DS16");
> + cpu_fprintf(f,
> + (sc->flags & DESC_B_MASK || env->hflags &
> HF_LMA_MASK)
> + ? "DS " : "DS16");
> cpu_fprintf(f, " [%c%c", (sc->flags & DESC_E_MASK) ? 'E' : '-',
> (sc->flags & DESC_W_MASK) ? 'W' : '-');
> }
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.21 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iEYEARECAAYFAlIzH3gACgkQAO6N0EYmC9ZZaACeLJZ4fJ9QARYuBHXwKCyV6uMN
X/4AnjP9gqnop9fjXQWXhFDxqEgofkw7
=BEj3
-----END PGP SIGNATURE-----