fix xencomm_add_offset(). index must be incremented.
I tested only ia64 part. 
Xen/powerpc developper, Please check powerpc part.

-- 
yamahata
# HG changeset patch
# User [EMAIL PROTECTED]
# Date 1163136850 -32400
# Node ID 10cd8f17f3e583282fd4d8efa7d6f05f4a122319
# Parent  13397c9919becfc33466206f8488d7ce55097100
fix xencomm_add_offset(). index must be incremented.
PATCHNAME: fix_xencomm_add_offset

Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>

diff -r 13397c9919be -r 10cd8f17f3e5 xen/arch/ia64/xen/xencomm.c
--- a/xen/arch/ia64/xen/xencomm.c       Fri Nov 10 14:26:32 2006 +0900
+++ b/xen/arch/ia64/xen/xencomm.c       Fri Nov 10 14:34:10 2006 +0900
@@ -345,6 +345,11 @@ xencomm_add_offset(
         unsigned int chunksz;
         unsigned int chunk_skip;
 
+        if (dest_paddr == XENCOMM_INVALID) {
+            i++;
+            continue;
+        }
+
         pgoffset = dest_paddr % PAGE_SIZE;
         chunksz = PAGE_SIZE - pgoffset;
 
@@ -356,6 +361,8 @@ xencomm_add_offset(
             desc->address[i] += chunk_skip;
         }
         bytes -= chunk_skip;
+       
+       i++;
     }
     return handle;
 }
diff -r 13397c9919be -r 10cd8f17f3e5 xen/arch/powerpc/usercopy.c
--- a/xen/arch/powerpc/usercopy.c       Fri Nov 10 14:26:32 2006 +0900
+++ b/xen/arch/powerpc/usercopy.c       Fri Nov 10 14:34:10 2006 +0900
@@ -249,6 +249,11 @@ int xencomm_add_offset(void *handle, uns
         unsigned int chunksz;
         unsigned int chunk_skip;
 
+        if (dest_paddr == XENCOMM_INVALID) {
+            i++;
+            continue;
+        }
+
         pgoffset = dest_paddr % PAGE_SIZE;
         chunksz = PAGE_SIZE - pgoffset;
 
@@ -260,6 +265,8 @@ int xencomm_add_offset(void *handle, uns
             desc->address[i] += chunk_skip;
         }
         bytes -= chunk_skip;
+
+       i++;
     }
     return 0;
 }
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel

Reply via email to