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

[Xen-ia64-devel] [PATCH] Fix a bug in xencomm_copy_from/to_guest()



Hi all,

  I found that the HVM guest was often failed to create when I
repeated to create and destroy a HVM guest. The following message was
displayed.

Using config file "hvm.conf".
Error: (1, 'Internal error', 'Error constructing guest OS')

  I also found the message of Xen as follows.

(XEN) xencomm_paddr_to_maddr: called with bad memory address: 0x1e5b0000 - 
iip=a00000010006fe50


  This is a bug in xencomm_copy_from_guest(). In this function,
because the condition of calling xencomm_copy_chunk_from() was wrong,
it was called in an invalid destination address.
  The attached patch fixes it and also fixes xencomm_copy_to_guest().

Thanks,
KAZ

Signed-off-by: Kazuhiro Suzuki <kaz@xxxxxxxxxxxxxx>
diff -r 80c5b5914b79 xen/arch/ia64/xen/xencomm.c
--- a/xen/arch/ia64/xen/xencomm.c       Wed Dec 20 14:55:02 2006 -0700
+++ b/xen/arch/ia64/xen/xencomm.c       Wed Dec 27 18:03:10 2006 +0900
@@ -148,6 +148,13 @@ xencomm_copy_from_guest(
         pgoffset = src_paddr % PAGE_SIZE;
         chunksz = PAGE_SIZE - pgoffset;
 
+        if (chunksz <= skip) {
+            from_pos += chunksz;
+            skip -= chunksz;
+            i++;
+            continue;
+        }
+
         chunk_skip = min(chunksz, skip);
         from_pos += chunk_skip;
         chunksz -= chunk_skip;
@@ -289,6 +296,13 @@ xencomm_copy_to_guest(
         pgoffset = dest_paddr % PAGE_SIZE;
         chunksz = PAGE_SIZE - pgoffset;
 
+        if (chunksz <= skip) {
+            to_pos += chunksz;
+            skip -= chunksz;
+            i++;
+            continue;
+        }
+
         chunk_skip = min(chunksz, skip);
         to_pos += chunk_skip;
         chunksz -= chunk_skip;
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.