]> git.hungrycats.org Git - linux/commitdiff
[PATCH] ppc64: HvCall_writeLogBuffer called with too large of a buffer
authorAndrew Morton <akpm@osdl.org>
Mon, 19 Jan 2004 02:10:14 +0000 (18:10 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Mon, 19 Jan 2004 02:10:14 +0000 (18:10 -0800)
From: Anton Blanchard <anton@samba.org>

HvCall_writeLogBuffer called with too large of a buffer

arch/ppc64/kernel/HvCall.c

index 980cff0edc9de63ae776b1eafe6e1f6dc0f3d515..c3ec634f3d2179f36c36b2862efd4a9b2068bbc7 100644 (file)
@@ -90,11 +90,11 @@ void HvCall_writeLogBuffer(const void *buffer, u64 bufLen)
        struct HvLpBufferList bufList;
        u64 bytesLeft = bufLen;
        u64 leftThisPage;
-       u64 curPtr = virt_to_absolute( (unsigned long) buffer );
+       u64 curPtr = virt_to_absolute((unsigned long) buffer);
 
        while (bytesLeft) {
                bufList.addr = curPtr;
-      
+
                leftThisPage = ((curPtr & PAGE_MASK) + PAGE_SIZE) - curPtr;
 
                if (leftThisPage > bytesLeft) {
@@ -105,11 +105,11 @@ void HvCall_writeLogBuffer(const void *buffer, u64 bufLen)
                        bytesLeft -= leftThisPage;
                }
 
-               curPtr = (curPtr & PAGE_MASK) + PAGE_SIZE;
-       }
-
 
-       HvCall2(HvCallBaseWriteLogBuffer,
-               virt_to_absolute((unsigned long)&bufList), bufLen);
+               HvCall2(HvCallBaseWriteLogBuffer,
+                       virt_to_absolute((unsigned long) &bufList),
+                       bufList.len);
 
+               curPtr = (curPtr & PAGE_MASK) + PAGE_SIZE;
+       }
 }