From 3e6f9ecb2e122b45f1efe7b956c9490a0d53a8f4 Mon Sep 17 00:00:00 2001 From: Santosh Jodh Date: Tue, 7 Feb 2012 18:46:50 +0000 Subject: libxc: Replace malloc with alloca in hot path Replace malloc with alloc in hot paths for improved performance. Signed-off-by: Santosh Jodh Acked-by: Ian Campbell Committed-by: Ian Jackson --- tools/libxc/xc_linux_osdep.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'tools/libxc') diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c index 4ee970d9c0..779fcd763d 100644 --- a/tools/libxc/xc_linux_osdep.c +++ b/tools/libxc/xc_linux_osdep.c @@ -243,7 +243,7 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h * IOCTL_PRIVCMD_MMAPBATCH_V2 is not supported - fall back to * IOCTL_PRIVCMD_MMAPBATCH. */ - xen_pfn_t *pfn = malloc(num * sizeof(*pfn)); + xen_pfn_t *pfn = alloca(num * sizeof(*pfn)); if ( pfn ) { @@ -289,8 +289,6 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h break; } - free(pfn); - if ( rc == -ENOENT && i == num ) rc = 0; else if ( rc ) @@ -525,7 +523,7 @@ static void *linux_gnttab_grant_map(xc_gnttab *xch, xc_osdep_handle h, if (flags & XC_GRANT_MAP_SINGLE_DOMAIN) domids_stride = 0; - map = malloc(sizeof(*map) + + map = alloca(sizeof(*map) + (count - 1) * sizeof(struct ioctl_gntdev_map_grant_ref)); if ( map == NULL ) return NULL; @@ -599,7 +597,6 @@ static void *linux_gnttab_grant_map(xc_gnttab *xch, xc_osdep_handle h, } out: - free(map); return addr; } -- cgit v1.2.3