[prev in list] [next in list] [prev in thread] [next in thread]
List: xen-ppc-devel
Subject: [XenPPC] [linux-ppc-2.6] [POWERPC][XEN] Don't leak frame_list and
From: "Xen patchbot-linux-ppc-2.6" <patchbot-linux-ppc-2.6 () lists ! xensource ! com>
Date: 2007-02-06 22:30:56
Message-ID: E1HEYq1-000410-VR () xenbits ! xensource ! com
[Download RAW message or body]
# HG changeset patch
# User Jimi Xenidis <jimix@watson.ibm.com>
# Node ID 8bccc5d192be551cfe12e1c4d38bb49144f980aa
# Parent 5eca8383a521939f0d74e68eaddb049c5057742a
[POWERPC][XEN] Don't leak frame_list and don'r post process gnttab if OP fails
Signed-off-by: Jimi Xenidis <jimix@watson.ibm.com>
---
arch/powerpc/platforms/xen/gnttab.c | 21 +++++++++------------
1 files changed, 9 insertions(+), 12 deletions(-)
diff -r 5eca8383a521 -r 8bccc5d192be arch/powerpc/platforms/xen/gnttab.c
--- a/arch/powerpc/platforms/xen/gnttab.c Tue Feb 06 16:21:30 2007 -0500
+++ b/arch/powerpc/platforms/xen/gnttab.c Tue Feb 06 16:30:08 2007 -0500
@@ -244,10 +244,10 @@ static void gnttab_post_map_grant_ref(
int HYPERVISOR_grant_table_op(unsigned int cmd, void *op, unsigned int count)
{
- void *desc = NULL;
+ void *desc;
void *frame_list = NULL;
int argsize;
- int ret;
+ int ret = -ENOMEM;
switch (cmd) {
case GNTTABOP_map_grant_ref:
@@ -292,17 +292,14 @@ int HYPERVISOR_grant_table_op(unsigned i
}
desc = xencomm_map_no_alloc(op, argsize);
-
- if (desc == NULL)
- return -ENOSPC;
-
- ret = plpar_hcall_norets(XEN_MARK(__HYPERVISOR_grant_table_op), cmd,
- desc, count);
- if (cmd == GNTTABOP_map_grant_ref)
- gnttab_post_map_grant_ref(op, count);
-
+ if (desc) {
+ ret = plpar_hcall_norets(XEN_MARK(__HYPERVISOR_grant_table_op),
+ cmd, desc, count);
+ if (!ret && cmd == GNTTABOP_map_grant_ref)
+ gnttab_post_map_grant_ref(op, count);
+ xencomm_free(desc);
+ }
xencomm_free(frame_list);
- xencomm_free(desc);
return ret;
}
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic