aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_linux_osdep.c
diff options
context:
space:
mode:
authorSantosh Jodh <santosh.jodh@citrix.com>2012-02-07 18:46:50 +0000
committerSantosh Jodh <santosh.jodh@citrix.com>2012-02-07 18:46:50 +0000
commit3e6f9ecb2e122b45f1efe7b956c9490a0d53a8f4 (patch)
tree8ef82f7fb6de51433954cc3713e4adb88e921355 /tools/libxc/xc_linux_osdep.c
parent6817a0ff5c0392b8a1e9c5302e2c7d0a403aedaa (diff)
downloadxen-3e6f9ecb2e122b45f1efe7b956c9490a0d53a8f4.tar.gz
xen-3e6f9ecb2e122b45f1efe7b956c9490a0d53a8f4.tar.bz2
xen-3e6f9ecb2e122b45f1efe7b956c9490a0d53a8f4.zip
libxc: Replace malloc with alloca in hot path
Replace malloc with alloc in hot paths for improved performance. Signed-off-by: Santosh Jodh <santosh.jodh@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxc/xc_linux_osdep.c')
-rw-r--r--tools/libxc/xc_linux_osdep.c7
1 files changed, 2 insertions, 5 deletions
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;
}