Mailing List Archive

[xen-unstable] [xen, xencomm] xencomm trivial bug fix
# HG changeset patch
# User kfraser@localhost.localdomain
# Date 1187103668 -3600
# Node ID 0d367c186e8c23419579c887e1865c17bcf36f31
# Parent e9a5c6b2acbe98d7a2d60da447a437a62eef94ea
[xen, xencomm] xencomm trivial bug fix
- fix return address of xencomm_copy_to_guest()
- fix xencomm_add_offset()
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
---
xen/common/xencomm.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletion(-)

diff -r e9a5c6b2acbe -r 0d367c186e8c xen/common/xencomm.c
--- a/xen/common/xencomm.c Tue Aug 14 15:58:16 2007 +0100
+++ b/xen/common/xencomm.c Tue Aug 14 16:01:08 2007 +0100
@@ -232,7 +232,7 @@ xencomm_copy_to_guest(void *to, const vo

dest_maddr = paddr_to_maddr(dest_paddr + chunk_skip);
if (dest_maddr == 0)
- return -1;
+ return n - from_pos;

if (xencomm_debug)
printk("%lx[%d] -> %lx\n", source, bytes, dest_maddr);
@@ -279,6 +279,11 @@ int xencomm_add_offset(void **handle, un
unsigned int pgoffset;
unsigned int chunksz;
unsigned int chunk_skip;
+
+ if (dest_paddr == XENCOMM_INVALID) {
+ i++;
+ continue;
+ }

pgoffset = dest_paddr % PAGE_SIZE;
chunksz = PAGE_SIZE - pgoffset;
@@ -291,6 +296,8 @@ int xencomm_add_offset(void **handle, un
desc->address[i] += chunk_skip;
}
bytes -= chunk_skip;
+
+ i++;
}
return 0;
}

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