summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Jones <davej@fedoraproject.org>2014-01-27 16:56:09 +0100
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2014-01-31 15:48:58 +0100
commitf93576e1ac34fd7a93d6f3432e71295bbe6a27ce (patch)
tree3721b396e96e21694987fba66c6ce12dedf53c71
parentdrivers: xen: deaggressive selfballoon driver (diff)
downloadlinux-f93576e1ac34fd7a93d6f3432e71295bbe6a27ce.tar.xz
linux-f93576e1ac34fd7a93d6f3432e71295bbe6a27ce.zip
xen/pvh: Fix misplaced kfree from xlated_setup_gnttab_pages
Passing a freed 'pages' to free_xenballooned_pages will end badly on kernels with slub debug enabled. This looks out of place between the rc assign and the check, but we do want to kfree pages regardless of which path we take. Signed-off-by: Dave Jones <davej@fedoraproject.org> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-rw-r--r--arch/x86/xen/grant-table.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/xen/grant-table.c b/arch/x86/xen/grant-table.c
index 103c93f874b2..c98583588580 100644
--- a/arch/x86/xen/grant-table.c
+++ b/arch/x86/xen/grant-table.c
@@ -162,14 +162,15 @@ static int __init xlated_setup_gnttab_pages(void)
rc = arch_gnttab_map_shared(pfns, nr_grant_frames, nr_grant_frames,
&xen_auto_xlat_grant_frames.vaddr);
- kfree(pages);
if (rc) {
pr_warn("%s Couldn't map %ld pfns rc:%d\n", __func__,
nr_grant_frames, rc);
free_xenballooned_pages(nr_grant_frames, pages);
+ kfree(pages);
kfree(pfns);
return rc;
}
+ kfree(pages);
xen_auto_xlat_grant_frames.pfn = pfns;
xen_auto_xlat_grant_frames.count = nr_grant_frames;