xen/pvh: Fix misplaced kfree from xlated_setup_gnttab_pages
authorDave Jones <davej@fedoraproject.org>
Mon, 27 Jan 2014 15:56:09 +0000 (10:56 -0500)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 31 Jan 2014 14:48:58 +0000 (09:48 -0500)
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>
arch/x86/xen/grant-table.c

index 103c93f874b27c8656dde51d1ce7f02463d558e3..c985835885802a69ef0b255e36c81484026ab227 100644 (file)
@@ -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;