iommu/amd: Tell kmemleak about the irq_remap_table
authorLucas Stach <dev@lynxeye.de>
Wed, 26 Oct 2016 11:09:53 +0000 (13:09 +0200)
committerJoerg Roedel <jroedel@suse.de>
Thu, 10 Nov 2016 12:16:45 +0000 (13:16 +0100)
This will get rid of a lot false positives caused by kmemleak being
unaware of the irq_remap_table. Based on a suggestion from Catalin Marinas.

Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd_iommu_init.c

index 157e934..971154c 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/amd-iommu.h>
 #include <linux/export.h>
 #include <linux/iommu.h>
+#include <linux/kmemleak.h>
 #include <asm/pci-direct.h>
 #include <asm/iommu.h>
 #include <asm/gart.h>
@@ -2090,6 +2091,7 @@ static struct syscore_ops amd_iommu_syscore_ops = {
 
 static void __init free_on_init_error(void)
 {
+       kmemleak_free(irq_lookup_table);
        free_pages((unsigned long)irq_lookup_table,
                   get_order(rlookup_table_size));
 
@@ -2321,6 +2323,8 @@ static int __init early_amd_iommu_init(void)
                irq_lookup_table = (void *)__get_free_pages(
                                GFP_KERNEL | __GFP_ZERO,
                                get_order(rlookup_table_size));
+               kmemleak_alloc(irq_lookup_table, rlookup_table_size,
+                              1, GFP_KERNEL);
                if (!irq_lookup_table)
                        goto out;
        }