diff mbox

[V2,1/2] target-arm: KVM64: Get and Sync up guest register state like kvm32.

Message ID 1419239097-14758-2-git-send-email-pranavkumar@linaro.org
State New
Headers show

Commit Message

PranavkumarSawargaonkar Dec. 22, 2014, 9:04 a.m. UTC
This patch adds:
1. Call write_kvmstate_to_list() and write_list_to_cpustate()
   in kvm_arch_get_registers() to sync guest register state.
2. Call write_list_to_kvmstate() in kvm_arch_put_registers()
   to sync guest register state.

These changes are already there for kvm32 in target-arm/kvm32.c.

Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
---
 target-arm/kvm64.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Peter Maydell Jan. 5, 2015, 1:28 p.m. UTC | #1
On 22 December 2014 at 09:04, Pranavkumar Sawargaonkar
<pranavkumar@linaro.org> wrote:
> This patch adds:
> 1. Call write_kvmstate_to_list() and write_list_to_cpustate()
>    in kvm_arch_get_registers() to sync guest register state.
> 2. Call write_list_to_kvmstate() in kvm_arch_put_registers()
>    to sync guest register state.
>
> These changes are already there for kvm32 in target-arm/kvm32.c.
>
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> ---
>  target-arm/kvm64.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/target-arm/kvm64.c b/target-arm/kvm64.c
> index ba16821..96148c6 100644
> --- a/target-arm/kvm64.c
> +++ b/target-arm/kvm64.c
> @@ -193,6 +193,10 @@ int kvm_arch_put_registers(CPUState *cs, int level)
>          }
>      }
>
> +    if (!write_list_to_kvmstate(cpu)) {
> +        return EINVAL;
> +    }
> +
>      /* TODO:
>       * FP state
>       * system registers

You should delete the "system registers" line from this TODO
comment, since you've now fixed that part.

> @@ -269,6 +273,14 @@ int kvm_arch_get_registers(CPUState *cs)
>          }
>      }
>
> +    if (!write_kvmstate_to_list(cpu)) {
> +        return EINVAL;
> +    }
> +    /* Note that it's OK to have registers which aren't in CPUState,
> +     * so we can ignore a failure return here.
> +     */
> +    write_list_to_cpustate(cpu);
> +
>      /* TODO: other registers */
>      return ret;
>  }

Otherwise:
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

-- PMM
diff mbox

Patch

diff --git a/target-arm/kvm64.c b/target-arm/kvm64.c
index ba16821..96148c6 100644
--- a/target-arm/kvm64.c
+++ b/target-arm/kvm64.c
@@ -193,6 +193,10 @@  int kvm_arch_put_registers(CPUState *cs, int level)
         }
     }
 
+    if (!write_list_to_kvmstate(cpu)) {
+        return EINVAL;
+    }
+
     /* TODO:
      * FP state
      * system registers
@@ -269,6 +273,14 @@  int kvm_arch_get_registers(CPUState *cs)
         }
     }
 
+    if (!write_kvmstate_to_list(cpu)) {
+        return EINVAL;
+    }
+    /* Note that it's OK to have registers which aren't in CPUState,
+     * so we can ignore a failure return here.
+     */
+    write_list_to_cpustate(cpu);
+
     /* TODO: other registers */
     return ret;
 }