Re: [RFC PATCH v2] iommu/amd: gray the 'irq_remap_table' object for kmemleak

Michael Wang
2015-12-02T10:56:24Z

On 12/02/2015 11:52 AM, Catalin Marinas wrote:
[snip]
>>
>> Is there any more concern? actually we just want to get rid of this
>> annoying report on obj won't leak, if you're going to create obj for
>> 'irq_lookup_table' that's also fine for us, or will you pick this patch?
>
> My preference (from a kmemleak perspective) is to tell kmemleak about
> the irq_lookup_table. Untested:

I'm fine with both solution, will leave the decision to maintainer :-)

BTW, could you please send a formal patch with descriptions?

Regards,
Michael Wang

>
> diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
> index 013bdfff2d4d..c41609f71cbe 100644
> --- a/drivers/iommu/amd_iommu_init.c
> +++ b/drivers/iommu/amd_iommu_init.c
> @@ -27,6 +27,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>
> @@ -1692,6 +1693,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));
>
> @@ -1906,6 +1908,7 @@ 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;
> }
>