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] [linux-2.6.18-xen] [IA64] implement xencomm routine for

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] [IA64] implement xencomm routine for HVMOP_track_dirty_vram.
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 20 May 2008 08:30:51 -0700
Delivery-date: Tue, 20 May 2008 08:59:12 -0700
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 Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
# Date 1210642929 -32400
# Node ID e5933404dadad1fb144b8cc29caad044cc54a491
# Parent  f6fcc65413aee0da4b6b1df03a876342fd526667
[IA64] implement xencomm routine for HVMOP_track_dirty_vram.

This patches implement xencomm routine for HVMOP_track_dirty_vram hypercall.
Without this, using vfb results in annoying messages in dom0 as
> xencomm_privcmd_hvm_op: unknown HVMOP 6
xen/ia64 doesn't implement the hypercall at this moment so that
it simply returns -ENOSYS. So the xencomm routine returns -ENOSYS
directly without issuing the useless hypercall.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 arch/ia64/xen/xcom_privcmd.c |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+)

diff -r f6fcc65413ae -r e5933404dada arch/ia64/xen/xcom_privcmd.c
--- a/arch/ia64/xen/xcom_privcmd.c      Tue May 13 10:38:04 2008 +0900
+++ b/arch/ia64/xen/xcom_privcmd.c      Tue May 13 10:42:09 2008 +0900
@@ -661,6 +661,41 @@ xencomm_privcmd_event_channel_op(privcmd
 }
 
 static int
+xencomm_privcmd_hvm_op_track_dirty_vram(privcmd_hypercall_t *hypercall)
+{
+#if 1
+       /*
+        * At this moment HVMOP_track_dirty_vram isn't implemented
+        * on xen/ia64 so that it just returns -ENOSYS.
+        * Don't issue hypercall to get -ENOSYS.
+        * When the hypercall is implemented, enable the following codes.
+        */
+       return -ENOSYS;
+#else
+       int cmd = hypercall->arg[0];
+       struct xen_hvm_track_dirty_vram *user_op = (void*)hypercall->arg[1];
+       struct xen_hvm_track_dirty_vram kern_op;
+       struct xencomm_handle *desc;
+       struct xencomm_handle *bitmap_desc;
+       int ret;
+
+       BUG_ON(cmd != HVMOP_track_dirty_vram);
+       if (copy_from_user(&kern_op, user_op, sizeof(kern_op)))
+               return -EFAULT;
+       desc = xencomm_map_no_alloc(&kern_op, sizeof(kern_op));
+       bitmap_desc = xencomm_map(xen_guest_handle(kern_op.dirty_bitmap),
+                                 kern_op.nr * sizeof(uint8_t));
+       if (bitmap_desc == NULL)
+               return -ENOMEM;
+       set_xen_guest_handle(kern_op.dirty_bitmap, (void*)bitmap_desc);
+       ret = xencomm_arch_hypercall_hvm_op(cmd, desc);
+       xencomm_free(bitmap_desc);
+
+       return ret;
+#endif
+}
+
+static int
 xencomm_privcmd_hvm_op(privcmd_hypercall_t *hypercall)
 {
        int cmd = hypercall->arg[0];
@@ -682,6 +717,9 @@ xencomm_privcmd_hvm_op(privcmd_hypercall
        case HVMOP_set_pci_link_route:
                argsize = sizeof(xen_hvm_set_pci_link_route_t);
                break;
+
+       case HVMOP_track_dirty_vram:
+               return xencomm_privcmd_hvm_op_track_dirty_vram(hypercall);
 
        default:
                printk("%s: unknown HVMOP %d\n", __func__, cmd);

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] [IA64] implement xencomm routine for HVMOP_track_dirty_vram., Xen patchbot-linux-2.6.18-xen <=