All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] incorrect xfree for mini-os
@ 2008-04-02 10:43 INAKOSHI Hiroya
  2008-04-02 10:52 ` Samuel Thibault
  0 siblings, 1 reply; 4+ messages in thread
From: INAKOSHI Hiroya @ 2008-04-02 10:43 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 292 bytes --]

xfree in extras/mini-os/lib/xmalloc.c is incorrect.

It has to check first if the memory to free is so big as to be freed
directly by free_pages.

mini-os domains crash without this patch if they don't configure vfb
correctly.

Signed-off-by: INAKOSHI Hiroya <inakoshi.hiroya@jp.fujitsu.com>

[-- Attachment #2: minios-incorrect-xfree.patch --]
[-- Type: text/plain, Size: 942 bytes --]

diff -r db943e8d1051 extras/mini-os/lib/xmalloc.c
--- a/extras/mini-os/lib/xmalloc.c	Tue Apr 01 10:09:33 2008 +0100
+++ b/extras/mini-os/lib/xmalloc.c	Wed Apr 02 19:34:40 2008 +0900
@@ -208,6 +208,13 @@ void xfree(const void *p)
     pad = (struct xmalloc_pad *)p - 1;
     hdr = (struct xmalloc_hdr *)((char *)p - pad->hdr_size);
 
+    /* Big allocs free directly. */
+    if ( hdr->size >= PAGE_SIZE )
+    {
+        free_pages(hdr, get_order(hdr->size));
+        return;
+    }
+
     /* We know hdr will be on same page. */
     if(((long)p & PAGE_MASK) != ((long)hdr & PAGE_MASK))
     {
@@ -220,13 +227,6 @@ void xfree(const void *p)
     {
         printk("Should not be previously freed\n");
         *(int*)0=0;
-    }
-
-    /* Big allocs free directly. */
-    if ( hdr->size >= PAGE_SIZE )
-    {
-        free_pages(hdr, get_order(hdr->size));
-        return;
     }
 
     /* Merge with other free block, or put in list. */

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-04-02 21:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-02 10:43 [PATCH] incorrect xfree for mini-os INAKOSHI Hiroya
2008-04-02 10:52 ` Samuel Thibault
2008-04-02 14:45   ` Keir Fraser
2008-04-02 21:40     ` Samuel Thibault

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.