WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [IA64] Fix xencomm for xm mem-set command

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] Fix xencomm for xm mem-set command
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 15 Nov 2006 00:40:43 +0000
Delivery-date: Tue, 14 Nov 2006 16:42:33 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID fe543184f7f9d4c54a38525d7584950cee27d73e
# Parent  169687dab774a442b51a2175cbbdbe2a13b433d4
[IA64] Fix xencomm for xm mem-set command

This patch saves and restores the hypercall parameter within xencomm.

Signed-off-by: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/arch/ia64/xen/xcom_hcall.c |   34 ++++++++++++++++++++++--
 1 files changed, 32 insertions(+), 2 deletions(-)

diff -r 169687dab774 -r fe543184f7f9 
linux-2.6-xen-sparse/arch/ia64/xen/xcom_hcall.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/xcom_hcall.c   Mon Nov 13 11:02:37 
2006 -0700
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/xcom_hcall.c   Mon Nov 13 11:24:30 
2006 -0700
@@ -221,10 +221,17 @@ int
 int
 xencomm_hypercall_memory_op(unsigned int cmd, void *arg)
 {
+       XEN_GUEST_HANDLE(xen_pfn_t) extent_start_va[2];
+       xen_memory_reservation_t *xmr = NULL, *xme_in = NULL, *xme_out = NULL;
+       int rc;
+
        switch (cmd) {
        case XENMEM_increase_reservation:
        case XENMEM_decrease_reservation:
        case XENMEM_populate_physmap:
+               xmr = (xen_memory_reservation_t *)arg;
+               xen_guest_handle(extent_start_va[0]) =
+                       xen_guest_handle(xmr->extent_start);
                xencommize_memory_reservation((xen_memory_reservation_t *)arg);
                break;
                
@@ -232,6 +239,12 @@ xencomm_hypercall_memory_op(unsigned int
                break;
 
        case XENMEM_exchange:
+               xme_in  = &((xen_memory_exchange_t *)arg)->in;
+               xme_out = &((xen_memory_exchange_t *)arg)->out;
+               xen_guest_handle(extent_start_va[0]) =
+                       xen_guest_handle(xme_in->extent_start);
+               xen_guest_handle(extent_start_va[1]) =
+                       xen_guest_handle(xme_out->extent_start);
                xencommize_memory_reservation
                        (&((xen_memory_exchange_t *)arg)->in);
                xencommize_memory_reservation
@@ -243,8 +256,25 @@ xencomm_hypercall_memory_op(unsigned int
                return -ENOSYS;
        }
 
-       return xencomm_arch_hypercall_memory_op
-               (cmd, xencomm_create_inline(arg));
+       rc =  xencomm_arch_hypercall_memory_op(cmd, xencomm_create_inline(arg));
+
+       switch (cmd) {
+       case XENMEM_increase_reservation:
+       case XENMEM_decrease_reservation:
+       case XENMEM_populate_physmap:
+               xen_guest_handle(xmr->extent_start) =
+                       xen_guest_handle(extent_start_va[0]);
+               break;
+
+       case XENMEM_exchange:
+               xen_guest_handle(xme_in->extent_start) =
+                       xen_guest_handle(extent_start_va[0]);
+               xen_guest_handle(xme_out->extent_start) =
+                       xen_guest_handle(extent_start_va[1]);
+               break;
+       }
+
+       return rc;
 }
 
 unsigned long

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [IA64] Fix xencomm for xm mem-set command, Xen patchbot-unstable <=