[Qemu-devel] [PATCH v3] translate-all: use glib for all page descriptor allocations
Since commit b7b5233a bsd-user/mmap.c: Don't try to override g_malloc/g_free the exception we make here for usermode has been unnecessary. Get rid of it. Signed-off-by: Emilio G. Cota c...@braap.org --- translate-all.c | 18 ++ 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/translate-all.c b/translate-all.c index 4d05898..acf792c 100644 --- a/translate-all.c +++ b/translate-all.c @@ -389,18 +389,6 @@ static PageDesc *page_find_alloc(tb_page_addr_t index, int alloc) void **lp; int i; -#if defined(CONFIG_USER_ONLY) -/* We can't use g_malloc because it may recurse into a locked mutex. */ -# define ALLOC(P, SIZE) \ -do {\ -P = mmap(NULL, SIZE, PROT_READ | PROT_WRITE,\ - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); \ -} while (0) -#else -# define ALLOC(P, SIZE) \ -do { P = g_malloc0(SIZE); } while (0) -#endif - /* Level 1. Always allocated. */ lp = l1_map + ((index V_L1_SHIFT) (V_L1_SIZE - 1)); @@ -412,7 +400,7 @@ static PageDesc *page_find_alloc(tb_page_addr_t index, int alloc) if (!alloc) { return NULL; } -ALLOC(p, sizeof(void *) * V_L2_SIZE); +p = g_new0(void *, V_L2_SIZE); *lp = p; } @@ -424,12 +412,10 @@ static PageDesc *page_find_alloc(tb_page_addr_t index, int alloc) if (!alloc) { return NULL; } -ALLOC(pd, sizeof(PageDesc) * V_L2_SIZE); +pd = g_new0(PageDesc, V_L2_SIZE); *lp = pd; } -#undef ALLOC - return pd + (index (V_L2_SIZE - 1)); } -- 1.9.1
Re: [Qemu-devel] [PATCH v3] translate-all: use glib for all page descriptor allocations
On 09/04/2015 22:07, Emilio G. Cota wrote: Since commit b7b5233a bsd-user/mmap.c: Don't try to override g_malloc/g_free the exception we make here for usermode has been unnecessary. Get rid of it. Signed-off-by: Emilio G. Cota c...@braap.org --- translate-all.c | 18 ++ 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/translate-all.c b/translate-all.c index 4d05898..acf792c 100644 --- a/translate-all.c +++ b/translate-all.c @@ -389,18 +389,6 @@ static PageDesc *page_find_alloc(tb_page_addr_t index, int alloc) void **lp; int i; -#if defined(CONFIG_USER_ONLY) -/* We can't use g_malloc because it may recurse into a locked mutex. */ -# define ALLOC(P, SIZE) \ -do {\ -P = mmap(NULL, SIZE, PROT_READ | PROT_WRITE,\ - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); \ -} while (0) -#else -# define ALLOC(P, SIZE) \ -do { P = g_malloc0(SIZE); } while (0) -#endif - /* Level 1. Always allocated. */ lp = l1_map + ((index V_L1_SHIFT) (V_L1_SIZE - 1)); @@ -412,7 +400,7 @@ static PageDesc *page_find_alloc(tb_page_addr_t index, int alloc) if (!alloc) { return NULL; } -ALLOC(p, sizeof(void *) * V_L2_SIZE); +p = g_new0(void *, V_L2_SIZE); *lp = p; } @@ -424,12 +412,10 @@ static PageDesc *page_find_alloc(tb_page_addr_t index, int alloc) if (!alloc) { return NULL; } -ALLOC(pd, sizeof(PageDesc) * V_L2_SIZE); +pd = g_new0(PageDesc, V_L2_SIZE); *lp = pd; } -#undef ALLOC - return pd + (index (V_L2_SIZE - 1)); } Thanks, looks good. Paolo