qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/1] i386/monitor: Fix page table walking issue for LA57 enab


From: Markus Armbruster
Subject: Re: [PATCH 1/1] i386/monitor: Fix page table walking issue for LA57 enabled guest
Date: Fri, 24 Jun 2022 07:35:00 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Yuan Yao <yuan.yao@intel.com> writes:

> Don't skip next leve page table for pdpe/pde when the

level

> PG_PRESENT_MASK is set.
>
> This fixs the issue that no mapping information was

fixes

> collected from "info mem" for guest with LA57 enabled.
>
> Signed-off-by: Yuan Yao <yuan.yao@intel.com>

Should we add

  Fixes: 6c7c3c21f95dd9af8a0691c0dd29b07247984122

?

> ---
>  target/i386/monitor.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/target/i386/monitor.c b/target/i386/monitor.c
> index 8e4b4d600c..3339550bbe 100644
> --- a/target/i386/monitor.c
> +++ b/target/i386/monitor.c
> @@ -489,7 +489,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
>                  cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8);
>                  pdpe = le64_to_cpu(pdpe);
>                  end = (l0 << 48) + (l1 << 39) + (l2 << 30);
> -                if (pdpe & PG_PRESENT_MASK) {
> +                if (!(pdpe & PG_PRESENT_MASK)) {
>                      prot = 0;
>                      mem_print(mon, env, &start, &last_prot, end, prot);
>                      continue;
> @@ -508,7 +508,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
>                      cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8);
>                      pde = le64_to_cpu(pde);
>                      end = (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21);
> -                    if (pde & PG_PRESENT_MASK) {
> +                    if (!(pde & PG_PRESENT_MASK)) {
>                          prot = 0;
>                          mem_print(mon, env, &start, &last_prot, end, prot);
>                          continue;
>
> base-commit: 6d940eff4734bcb40b1a25f62d7cec5a396f994a

The commit message talks about not skipping something when the flag is
set.  However, the patch *flips* the sense of conditions, which means
were *also* changing behavior when the flag is unset.  How?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]