summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorDave Jones <davej@fedoraproject.org>2014-01-27 15:56:09 (GMT)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2014-01-31 14:48:58 (GMT)
commitf93576e1ac34fd7a93d6f3432e71295bbe6a27ce (patch)
tree3721b396e96e21694987fba66c6ce12dedf53c71 /arch
parentbc1b0df59e3fc4573f92bc1aab9652047a0aeaa7 (diff)
downloadlinux-f93576e1ac34fd7a93d6f3432e71295bbe6a27ce.tar.xz
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>
Diffstat (limited to 'arch')
-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 103c93f..c985835 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;