diff mbox

[Xen-devel,3/6] xen/arm: Implement do_suspend function

Message ID 1397148539-19084-4-git-send-email-w1.huang@samsung.com
State New
Headers show

Commit Message

Wei Huang April 10, 2014, 4:48 p.m. UTC
From: Jaeyong Yoo <jaeyong.yoo@samsung.com>

Making sched_op in do_suspend (driver/xen/manage.c) returns 0 on the
success of suspend.

Signed-off-by: Alexey Sokolov <sokolov.a@samsung.com>
---
 tools/libxc/xc_resume.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

Comments

Julien Grall April 11, 2014, 2:10 p.m. UTC | #1
Hello,

Thank you for the patch.

On 04/10/2014 05:48 PM, Wei Huang wrote:
> From: Jaeyong Yoo <jaeyong.yoo@samsung.com>
> 
> Making sched_op in do_suspend (driver/xen/manage.c) returns 0 on the
> success of suspend.
> 
> Signed-off-by: Alexey Sokolov <sokolov.a@samsung.com>
> ---
>  tools/libxc/xc_resume.c | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> diff --git a/tools/libxc/xc_resume.c b/tools/libxc/xc_resume.c
> index 18b4818..9315eb8 100644
> --- a/tools/libxc/xc_resume.c
> +++ b/tools/libxc/xc_resume.c
> @@ -73,6 +73,31 @@ static int modify_returncode(xc_interface *xch, uint32_t domid)
>      return 0;
>  }
>  
> +#elif defined(__arm__)
> +

Did you forget to implement arm64?

Regards,
diff mbox

Patch

diff --git a/tools/libxc/xc_resume.c b/tools/libxc/xc_resume.c
index 18b4818..9315eb8 100644
--- a/tools/libxc/xc_resume.c
+++ b/tools/libxc/xc_resume.c
@@ -73,6 +73,31 @@  static int modify_returncode(xc_interface *xch, uint32_t domid)
     return 0;
 }
 
+#elif defined(__arm__)
+
+static int modify_returncode(xc_interface *xch, uint32_t domid)
+{
+    vcpu_guest_context_any_t ctxt;
+    xc_dominfo_t info;
+    int rc;
+
+    if ( xc_domain_getinfo(xch, domid, 1, &info) != 1 )
+    {
+        PERROR("Could not get domain info");
+        return -1;
+    }
+
+    if ( (rc = xc_vcpu_getcontext(xch, domid, 0, &ctxt)) != 0 )
+        return rc;
+
+    ctxt.c.user_regs.r0_usr = 1;
+
+    if ( (rc = xc_vcpu_setcontext(xch, domid, 0, &ctxt)) != 0 )
+        return rc;
+
+    return 0;
+}
+
 #else
 
 static int modify_returncode(xc_interface *xch, uint32_t domid)